Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift存储日期在格式化为字符串时会发生变化_Swift_Nsdate_Nsdateformatter_Core - Fatal编程技术网

swift存储日期在格式化为字符串时会发生变化

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

我在核心数据中存储了一个日期(作为一个日期),并且使用println它正确地显示了它的值:april 21(下面是var dateX),但是当println之后,我将它格式化为字符串并使用以下代码时,链接到它的标签显示了april 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:


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

您可能有时区问题。你在哪里<代码>默认时区可能是格林尼治标准时间/祖鲁时间,距离东海岸-5小时

检查的一个好方法是使用
timeintervalence1970
函数(我想这就是它的名称)。如果存储的日期和检索的日期具有相同的值,则其日期相同,并且存在显示问题


timeIntervalSince1970
返回一个
NSTimeInterval
,它实际上是一个
双线程

是的,我看到了其他线程,所以我将时区添加到了格式化程序中,但它似乎对idk没有帮助。为什么,我用println和timeZone编辑,谢谢,这是一个经常出现的问题:)–NSDate没有时区,其描述始终使用UTC
2015-04-21 22:53:34+0000与当地时区(GMT+2)中的
2015-04-22 00:53:34
相同。