我有两个问题。任何问题的任何帮助将非常感激。
首先 - 我没有从我的设备开始使用正确的NSDate,但显然我无能为力。
第二次 - 当我尝试将nsDateAsString转换为nsDateFromString时,它永远不会匹配。
我注意到的一件事是启用了夏令时。它对我的NSDate有影响吗?我该如何操纵?
代码示例
func NSDateToTimestamp(nsDate: NSDate) -> Double{
print("------------START-------------")
print("nsDate \(nsDate)")
let formater = NSDateFormatter()
formater.dateFormat = "yyyy-MM-dd HH:mm:ss"
// formater.timeZone = NSTimeZone.systemTimeZone()
// formater.timeZone = NSTimeZone.localTimeZone()
// formater.timeZone = NSTimeZone(forSecondsFromGMT: 3600)
print ("DLS offset \(formater.timeZone.daylightSavingTimeOffset)")
print ("DLS on/off \(formater.timeZone.daylightSavingTime)")
print("-------------------------------")
// string from date
let nsDateAsString = formater.stringFromDate(nsDate)
print("nsDateAsString \(nsDateAsString)")
// get format back to nsdate
let nsDateFromString = formater.dateFromString(nsDateAsString)
print("nsDateFromString \(nsDateFromString!)")
// convert nsdate to timestamp
let nsDateConvertedToTimestamp = nsDateFromString!.timeIntervalSince1970
print("nsDateConvertedToTimestamp \(nsDateConvertedToTimestamp)")
// convert timestamp to NSDate
let timestampConvertedBackToNSDate = NSDate(timeIntervalSince1970: nsDateConvertedToTimestamp)
print("timestampConvertedBackToNSDate \(timestampConvertedBackToNSDate)")
return nsDateConvertedToTimestamp
}
我的输出全部禁用,而我的手机是2月4日 - 8:11。
------------START-------------
nsDate 2016-02-03 19:33:22 +0000
DLS offset 3600.0
DLS on/off true
-------------------------------
nsDateAsString 2016-02-04 08:33:22
nsDateFromString 2016-02-03 19:33:22 +0000
nsDateConvertedToTimestamp 1454528002.0
timestampConvertedBackToNSDate 2016-02-03 19:33:22 +0000
我的输出NSTimeZone.localTimeZone() ENABLED ,而我的手机是2月4日 - 8:32 AM。
------------START-------------
nsDate 2016-02-03 19:32:07 +0000
DLS offset 3600.0
DLS on/off true
-------------------------------
nsDateAsString 2016-02-04 08:32:07
nsDateFromString 2016-02-03 19:32:07 +0000
nsDateConvertedToTimestamp 1454527927.0
timestampConvertedBackToNSDate 2016-02-03 19:32:07 +0000
我的输出NSTimeZone.systemTimeZone() ENABLED ,而我的手机是2月4日 - 8:32 AM。
------------START-------------
nsDate 2016-02-03 19:32:42 +0000
DLS offset 3600.0
DLS on/off true
-------------------------------
nsDateAsString 2016-02-04 08:32:42
nsDateFromString 2016-02-03 19:32:42 +0000
nsDateConvertedToTimestamp 1454527962.0
timestampConvertedBackToNSDate 2016-02-03 19:32:42 +0000
我的输出NSTimeZone(forSecondsFromGMT:3600) ENABLED ,而我的手机是2月4日 - 8:31 AM。
------------START-------------
nsDate 2016-02-03 19:31:16 +0000
DLS offset 0.0
DLS on/off false
-------------------------------
nsDateAsString 2016-02-03 20:31:16
nsDateFromString 2016-02-03 19:31:16 +0000
nsDateConvertedToTimestamp 1454527876.0
timestampConvertedBackToNSDate 2016-02-03 19:31:16 +0000
我的输出NSTimeZone(forSecondsFromGMT:0) ENABLED ,而我的手机是2月4日 - 8:30。
------------START-------------
nsDate 2016-02-03 19:30:09 +0000
DLS offset 0.0
DLS on/off false
-------------------------------
nsDateAsString 2016-02-03 19:30:09
nsDateFromString 2016-02-03 19:30:09 +0000
nsDateConvertedToTimestamp 1454527809.0
timestampConvertedBackToNSDate 2016-02-03 19:30:09 +0000