2020年6月17日 星期三

[iOS - Swift] Date的使用方式

Date是專門用來處理有關時間的一個類別。
我們可以簡單的透過以下的程式碼來取得當前時間。

let date = Date()

接著透過DateFormatter來進行時間的轉換,因為我們可能會需要將時間轉換成字串,以便顯示,或者進行處理。

///取得當前時間
let date = Date()
///時間轉換成字串
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd"
print(dateFormatter.string(from: date))
我們可以透過網站得知一些時間的格式應該怎麽使用

透過設定dateFormat,來讓Date轉換成你想要的時間格式。
如果轉換出來的結果可能會依照語系的不同,可以經由設定語系來更改

///取得當前時間
let date = Date()
///時間轉換成字串
let dateFormatter = DateFormatter()
///設定語系
dateFormatter.locale = Locale(identifier: "zh_tw")
dateFormatter.dateFormat = "MMMM"
print(dateFormatter.string(from: date))

當然,你也可以透過文字轉換回Date

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "zh_tw")
dateFormatter.dateFormat = "yyyy/MM/dd"
if let myDate = dateFormatter.date(from: "2018/12/21") {
    print(myDate)
}
至於日期的增減則可以使用Calendar來處理
let date = Date()
///加三天
let newDate = Calendar.current.date(byAdding: .day, value: 3, to: date)!
let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "zh_tw")
dateFormatter.dateFormat = "yyyy/MM/dd"
print(dateFormatter.string(from: newDate))

日期的比較,因為Date有實作Comparable這個Protocol,因此可以很簡單的使用> < = 來進行日期的比較。

let date = Date()
let newDate = Calendar.current.date(byAdding: .day, value: 3, to: date)!
if date < newDate {
    print("Date < NewDate")
}
if date > newDate {
    print("Date > newDate")
}
if date == newDate {
    print("Date == newDate")

沒有留言:

張貼留言