練習iOS SDK — 日期/時間相關

Chiu
5 min readSep 27, 2022

--

📌練習項目

● Foundation,Date,DateFormatter,Calendar,DateComponents

取系統日|DateFormatter設定日期格式 |Calendar轉民國年

🟡Source code

import Foundationvar nowtime = Date()print(nowtime)//設定日期時間格式var dateFormatter = DateFormatter()dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss"//設定時區dateFormatter.locale = Locale(identifier: "zh_TW")dateFormatter.timeZone = TimeZone(identifier: "Asia/Taipei")var dateString = dateFormatter.string(from: nowtime)print(dateString)//將日期轉為民國年dateFormatter.dateFormat = "民國 yyy年 MM月 dd日 HH:mm:ss"dateFormatter.calendar = Calendar(identifier: Calendar.Identifier.republicOfChina)dateString = dateFormatter.string(from: nowtime)print("轉為民國年=> \(dateString)")

印出結果

2022-09-14 08:41:03 +00002022/09/14 16:41:03轉為民國年=> 民國 111年 09月 14日 16:41:03

DateComponents產生日期、拆解日期

🟡Source code 產生日期

import Foundationlet newDate = DateComponents(calendar: Calendar.current, year: 2022, month: 9, day: 14, hour: 20, minute: 55, second: 30)let nowDate = newDate.datevar dateFormat = DateFormatter()dateFormat.dateFormat = "yyyy/MM/dd HH:mm:ss"let strDate = dateFormat.string(from: nowDate!)print(strDate)

印出結果

2022/09/14 20:55:30

🟡Source code 拆解日期

import Foundation//使用DateComponents建立一個日期let newDate = DateComponents(calendar: Calendar.current, year: 2022, month: 9, day: 14, hour: 20, minute: 55, second: 30)let nowDate = newDate.date!//使用DateComponents取得年月日let dateComponents = Calendar.current.dateComponents(in: TimeZone(identifier: "Asia/Taipei") ?? TimeZone.current, from: nowDate)let year = dateComponents.year //取得 2022let month = dateComponents.month //取得 9let day = dateComponents.day //取得 14

日期比較

兩個日期比較可以使用運算子 「>」、「<」、「=」來比較
或是使用compare(_:)
https://developer.apple.com/documentation/foundation/date/1780430-compare

🟡Source code

//建立兩個日期let dateFormat = DateFormatter()dateFormat.dateFormat = "yyyy/MM/dd HH:mm:ss"let date = Date()let date2 = Date().addingTimeInterval(10)print("date = \(dateFormat.string(from: date))")print("date2 = \(dateFormat.string(from: date2))\n")//使用運算子比較print("date 小於 date2 => \( date < date2)")print("date 大於 date2 => \( date > date2)\n")//使用compare比較let rs = date.compare(date2)switch rs{case .orderedAscending:print("date 小於 date2")case .orderedDescending:print("date 大於 date2")case .orderedSame:print("date 等於 date2")}

印出結果

date = 2022/09/15 15:47:56date2 = 2022/09/15 15:48:06date 小於 date2 => truedate 大於 date2 => falsedate 小於 date2

--

--