NSDateFormatter减少了日期

时间:2016-02-24 15:45:10

标签: ios core-data nsdateformatter

我需要将 ... is roughly analogous to <span class="type">Some <span class="type">X</span> ... 变量存储在Date

中的CoreData

我只需要在没有时间的情况下存储日期,所以我制作了一个格式化程序来丢弃iOS变量中的时间分区。 但我有一个奇怪的结果: 这是我的代码:

NSDate

这是输出:

    let dateStr = "2016-02-14 11:27:01"

    let df2 = NSDateFormatter()
    df2.timeZone = NSTimeZone.defaultTimeZone()
    df2.dateFormat = "yyyy-MM-dd HH:mm:ss"
    print(dateStr)

    if let date = df2.dateFromString(dateStr) {
        df2.dateFormat = "yyyy-MM-dd"
        print("-> \(df2.dateFromString(df2.stringFromDate(date)))")
    }

格式化程序为什么每天减少一天? 我尝试过很多同样问题的日期

1 个答案:

答案 0 :(得分:3)

您的时区显然是UTC + 4.

让UTC相应地设置时区。

df2.timeZone = NSTimeZone(forSecondsFromGMT: 0)

但是,尽管您在4小时前看到了某个日期,但NSDate对象会根据您所在的时区得到正确处理。 print命令始终显示UTC忽略时区信息,因为NSDate只是Double号码的包装。