swift存储日期在格式化为字符串时会发生变化
我在核心数据中存储了一个日期(作为一个日期),并且使用println它正确地显示了它的值:april 21(下面是var dateX),但是当println之后,我将它格式化为字符串并使用以下代码时,链接到它的标签显示了april 22(今天,所以我想明天会显示23等等),问题出在哪里?任何人 多谢各位swift存储日期在格式化为字符串时会发生变化,swift,nsdate,nsdateformatter,core,Swift,Nsdate,Nsdateformatter,Core,我在核心数据中存储了一个日期(作为一个日期),并且使用println它正确地显示了它的值:april 21(下面是var dateX),但是当println之后,我将它格式化为字符串并使用以下代码时,链接到它的标签显示了april 22(今天,所以我想明天会显示23等等),问题出在哪里?任何人 多谢各位 if dateX != nil{ var dateFormatter = NSDateFormatter() dateFormatter.date
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:
我的时区是罗马(意大利)您可能有时区问题。你在哪里<代码>默认时区可能是格林尼治标准时间/祖鲁时间,距离东海岸-5小时 检查的一个好方法是使用
timeintervalence1970
函数(我想这就是它的名称)。如果存储的日期和检索的日期具有相同的值,则其日期相同,并且存在显示问题
timeIntervalSince1970
返回一个NSTimeInterval
,它实际上是一个双线程
是的,我看到了其他线程,所以我将时区添加到了格式化程序中,但它似乎对idk没有帮助。为什么,我用println和timeZone编辑,谢谢,这是一个经常出现的问题:)–NSDate没有时区,其描述始终使用UTC2015-04-21 22:53:34+0000与当地时区(GMT+2)中的2015-04-22 00:53:34
相同。