2015-04-22 18 views
1

我在覈心數據中存儲了一個日期(作爲日期),並使用println正確顯示了它的值:4月21日(是下面的var dateX),但是當println我把它格式化爲下面的代碼,鏈接到它的標籤顯示4月22日(這是今天,所以我想知道明天將顯示23等),問題在哪裏?任何人? 謝謝當格式化爲字符串時,swift存儲的日期變得不同

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德恩和dateXstring:

enter image description here

我的時區是羅馬(意大利)

+0

是啊,我看到了其他線程,所以我已經添加時區的格式,但它似乎並沒有幫助IDK爲什麼,我和編輯的println和時區,謝謝 – m4tt

+0

這是經常出現的問題:) NSDate沒有時區,其描述始終使用UTC。 '2015-04-21 22:53:34 + 0000'與您當地時區(GMT + 2)的'2015-04-22 00:53:34'相同。 –

回答

1

你可能有一個時區的問題。你現在在哪裏? DefaultTimeZone可能是距東海岸-5小時的GMT/ZULU時間。

檢查的一個好方法是使用timeIntervalSince1970函數(我認爲它就是所謂的)。如果存儲的日期和檢索日期具有相同的值,則表示日期相同,並且存在顯示問題。

timeIntervalSince1970返回NSTimeInterval這實在是一個Double