在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)
我不明白为什么同一段代码会给出不同的输出?
答案 0 :(得分:0)
根据BhavukJain在评论中的建议,将YYYY改为yyyy,这对我来说是固定的。
来自https://8mobile.wordpress.com/2015/05/28/nsdateformatter-nsdate-wrong-year/
y =年,通常长度指定填充,但对于两个字母,它还指定最大长度。
Y =年份(基于“年份周”的日历),今年的指定用于ISO 8601定义的ISO年 - 周日历,但可用于非基于公历的日历系统,其中周日处理是期望。可能并不总是与日历年相同的值。