格式化为字符串时,快速存储的日期会变得不同[重复]

问题描述 投票:0回答:1

我在核心数据中存储了一个日期(作为日期),并且使用

println
它正确显示了它的值:4 月 21 日(是下面的 var
dateX
),但是在
println
之后,我将其格式化为带有以下代码的字符串,链接到它的标签显示4月22日(这是今天,所以我想知道明天会显示23等),问题出在哪里?

if dateX != nil{
            var dateFormatter = NSDateFormatter()
            dateFormatter.dateFormat = "MMM dd, yyyy"
            dateFormatter.timeZone = NSTimeZone.defaultTimeZone()
            var dateXstring = dateFormatter.stringFromDate(dateX as NSDate)
           startLabel.text = "Profile created on \(dateXstring)"
        }

println dateX 和 dateXstring:

enter image description here

我的时区是罗马(意大利)

swift core-data nsdate nsdateformatter
1个回答
1
投票

您可能遇到时区问题。你现在在哪里?

DefaultTimeZone
可能是 GMT/ZULU 时间,距东海岸 -5 小时。

检查的一个好方法是使用

timeIntervalSince1970
函数(我认为这就是它的名字)。如果存储的日期和检索的日期具有相同的值,则表示日期相同,并且出现显示问题。

timeIntervalSince1970
返回一个
NSTimeInterval
,这实际上是一个
Double

© www.soinside.com 2019 - 2024. All rights reserved.