iOS Swift NSDateFormatter提供不同的输出

时间:2015-12-31 06:41:41

标签: ios swift nsdateformatter

在Swift中使用一段代码来生成当前时间的时间戳,但有时它会像2016年而不是2015年那样提供错误的输出。

    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)

我不明白为什么同一段代码会给出不同的输出?

1 个答案:

答案 0 :(得分:0)

根据BhavukJain在评论中的建议,将YYYY改为yyyy,这对我来说是固定的。

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

y =年,通常长度指定填充,但对于两个字母,它还指定最大长度。

Y =年份(基于“年份周”的日历),今年的指定用于ISO 8601定义的ISO年 - 周日历,但可用于非基于公历的日历系统,其中周日处理是期望。可能并不总是与日历年相同的值。