2016-08-04 65 views
1

所以,我有NSDateFormatter和stringFromDate

let formatter: NSDateFormatter = NSDateFormatter() 
formatter.dateFormat = "yyyy MM dd" 

然後,我有

dateLabel.text = formatter.stringFromDate(currentDate!) 

但是,當我這樣做:

(lldb) po dateLabel.text 
▿ Optional<String> 
    - Some : "2016 01 17" 

(lldb) po currentDate 
▿ Optional<NSDate> 
    - Some : 2016-01-18 00:00:00 +0000 

Obivously,從2016年1月18日轉換在2016年結果字符串結果17 17.任何想法?

+2

我認爲,時區不捕捉,你是如何創建的currentdate –

+0

沒錯。它可能與你的currentDate有關。嘗試dateLabel.text = formatter.stringFromDate(NSDate()) – WeiJay

+0

stringFromDate(NSDate())是正確的。應該打印8月4日。 – Latcie

回答

0

您需要參考UTC時區

let dateString = "2016 01 17" 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd" 
    dateFormatter.timeZone = NSTimeZone(abbreviation: "UTC") 
    let s = dateFormatter.dateFromString(dateString) 
    print(s) 
+0

感謝您提供簡單快速的答案。 – Latcie

+0

快樂編碼@Latcie – gurmandeep