将NSDate转换为字符串而不是返回NSDate时,值不匹配

时间:2016-02-02 21:59:05

标签: swift nsdate

我有两个问题。任何问题的任何帮助将非常感激。

首先 - 我没有从我的设备开始使用正确的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

0 个答案:

没有答案