最近處理了一些關(guān)于日期的問題,先記下來,可以后來查用。
1,將字符串轉(zhuǎn)化為日期
let formatter = DateFormatter.init()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let lastTime = formatter.date(from:lastTimeString!)
2,將日期轉(zhuǎn)化為字符串
let date = Date()
let? timeFormatter = DateFormatter()
timeFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let currentTime = timeFormatter.string(from: date as Date) as String?
3,得到兩個(gè)日期的差值
a,通過和格林威治時(shí)間比較,得到向差的秒數(shù)
let lastTime = formatter.date(from:lastTimeString!)
let currentTime = formatter.date(from:self.getCurrentTimeStamp())
let timeInterval = (currentTime?.timeIntervalSince1970)! - (lastTime?.timeIntervalSince1970)!
b,通過比較,得到相差的年月日時(shí)分秒
let ctime = date
let mtime = date2
let ctimedf = DateFormatter()
ctimedf.dateFormat = "yyyy-MM-dd HH:mm:ss"
let ctimeDate = ctimedf.date(from: ctime)
let mtimeDate = ctimedf.date(from: mtime)
let calendar = Calendar.current
let unitFlags:NSCalendar.Unit = [NSCalendar.Unit.year, NSCalendar.Unit.month , NSCalendar.Unit.day , NSCalendar.Unit.hour , NSCalendar.Unit.minute , NSCalendar.Unit.second]
let components = (calendar as NSCalendar).components(unitFlags, from: ctimeDate!, to: mtimeDate!, options: NSCalendar.Options.init(rawValue: 0))
components.hour!
components.day
components.second
components.minute!
4,獲取當(dāng)前時(shí)間的時(shí)分秒
let calendar: Calendar = Calendar(identifier: .gregorian)
var comps: DateComponents = DateComponents()
?comps = calendar.dateComponents([.year,.month,.day, .weekday, .hour, .minute,.second], from: Date())
let hour = comps.hour!? ? ? ? ? ? // 小時(shí)
?let minutes = comps.minute!? ? ? ? ? // 分鐘