2015-12-31 67 views
-2

繼斯威夫特代碼來生成的當前時間的時標件,但有時它給出錯誤的輸出喜歡不同的2016年而不是2015年iOS版雨燕NSDateFormatter給出不同的輸出

let todaysDate: NSDate = NSDate() 
    let dateFormatter:NSDateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS" 
    var currentTimeStamp = dateFormatter.stringFromDate(todaysDate) 

    print("** Current time stamp: " + currentTimeStamp) 

我不明白爲什麼同一段代碼是否給出不同的輸出?

+0

**當前時間戳:2015-12-31 12:13:18.499 這是我得到的輸出 –

+0

我得到了正確的輸出。如果您追蹤哪些輸入會導致錯誤輸出,那將會更有幫助。 – NSNoob

+0

@UmaMadhavi是的,你是對的。這只是發生一段時間 –

回答

0

按照BhavukJain在評論中的建議,通過將YYYY更改爲yyyy來解決這個問題。

https://8mobile.wordpress.com/2015/05/28/nsdateformatter-nsdate-wrong-year/

Y =年份,通常長度指定了填充,但對於兩個字母它也指定的最大長度。

Y =年份(以「Week of Year」爲基礎的日曆),今年的指定用於ISO 8601定義的ISO年周曆中,但可以用於非格里曆的日曆系統,是期望的。可能並不總是與歷年相同的價值。

+0

但是,如果'yyyy'導致錯誤的輸出,那麼它不得不每次輸出不同的輸出。 –