Swift 如何將字符串日期轉(zhuǎn)換為NSDate
在開發(fā)iOS應(yīng)用程序時(shí),我們常常需要將用戶輸入的字符串日期轉(zhuǎn)換為NSDate
類型,以方便我們計(jì)算、比較日期。愛掏網(wǎng) - it200.com在本文中,我們將介紹如何在Swift中將字符串日期轉(zhuǎn)換為NSDate
類型。愛掏網(wǎng) - it200.com
Swift中提供了NSDateFormatter
類,可以用于將字符串日期轉(zhuǎn)換為NSDate
類型。愛掏網(wǎng) - it200.com我們可以使用以下代碼來進(jìn)行轉(zhuǎn)換:
let dateString = "2021-10-10"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let date = dateFormatter.dateFromString(dateString)!
以上代碼中,我們首先創(chuàng)建了一個(gè)字符串日期dateString
,然后創(chuàng)建了一個(gè)NSDateFormatter
對(duì)象dateFormatter
,并設(shè)置其日期格式為yyyy-MM-dd
,最后調(diào)用dateFormatter.dateFromString
方法將字符串日期轉(zhuǎn)換為NSDate
類型。愛掏網(wǎng) - it200.com
使用ISO8601DateFormatter進(jìn)行轉(zhuǎn)換
在Swift 3及以上版本中,我們可以使用ISO8601DateFormatter
類來將字符串日期轉(zhuǎn)換為NSDate
類型。愛掏網(wǎng) - it200.com該類在語言中自帶,支持將字符串日期轉(zhuǎn)換為符合ISO8601標(biāo)準(zhǔn)的格式。愛掏網(wǎng) - it200.com我們可以使用以下代碼來進(jìn)行轉(zhuǎn)換:
let dateString = "2021-10-10T15:21:00+0800"
let dateFormatter = ISO8601DateFormatter()
let date = dateFormatter.date(from: dateString)!
以上代碼中,我們創(chuàng)建了一個(gè)字符串日期dateString
,然后創(chuàng)建了一個(gè)ISO8601DateFormatter
對(duì)象dateFormatter
,然后調(diào)用dateFormatter.date(from:)
方法將字符串日期轉(zhuǎn)換為NSDate
類型。愛掏網(wǎng) - it200.com
自定義日期格式
有時(shí),我們需要將非標(biāo)準(zhǔn)日期格式的字符串日期轉(zhuǎn)換為NSDate
類型。愛掏網(wǎng) - it200.com這時(shí),我們可以自定義日期格式并將其傳遞給NSDateFormatter
類的dateFormat
屬性。愛掏網(wǎng) - it200.com例如:
let dateString = "2021年10月10日"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy年MM月dd日"
let date = dateFormatter.dateFromString(dateString)!
以上代碼中,我們創(chuàng)建了一個(gè)字符串日期dateString
,然后創(chuàng)建了一個(gè)NSDateFormatter
對(duì)象dateFormatter
,并自定義了日期格式為yyyy年MM月dd日
,最后調(diào)用dateFormatter.dateFromString
方法將字符串日期轉(zhuǎn)換為NSDate
類型。愛掏網(wǎng) - it200.com
處理時(shí)間期限
在某些應(yīng)用程序中,我們需要將時(shí)間期限轉(zhuǎn)換為秒數(shù)。愛掏網(wǎng) - it200.com例如,如果我們想將兩個(gè)日期之間的時(shí)間差轉(zhuǎn)換為秒數(shù),我們可以使用以下代碼:
let dateString1 = "2021-10-10"
let dateString2 = "2021-10-11"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let startDate = dateFormatter.dateFromString(dateString1)!
let endDate = dateFormatter.dateFromString(dateString2)!
let timeInterval = endDate.timeIntervalSince(startDate)
以上代碼中,我們創(chuàng)建了兩個(gè)字符串日期dateString1
和dateString2
,將它們分別轉(zhuǎn)換為NSDate
類型,并計(jì)算兩個(gè)日期之間的時(shí)間間隔。愛掏網(wǎng) - it200.com最后得到的timeInterval
為兩個(gè)日期之間的秒數(shù)。愛掏網(wǎng) - it200.com
結(jié)論
在本文中,我們介紹了如何在Swift中將字符串日期轉(zhuǎn)換為NSDate
類型,包括使用NSDateFormatter
進(jìn)行轉(zhuǎn)換、使用ISO8601DateFormatter
進(jìn)行轉(zhuǎn)換、自定義日期格式以及處理時(shí)間期限。愛掏網(wǎng) - it200.com以上內(nèi)容能夠幫助我們?cè)趹?yīng)用程序中更加方便地處理日期。愛掏網(wǎng) - it200.com