我有一个场景,我得到日期字符串为“46-05-24”(yy-mm-dd),而且我需要将日期重新格式化为“1946-05-24”。 NSDateFormatter
将该字符串解释为“2046-05-24”。NSDateFormatter解析两位数的年份为2046而不是1946或2040而不是1940
我使用这个代码:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yy-mm-dd"
let gmt : NSTimeZone = NSTimeZone(abbreviation: "GMT")!
dateFormatter.timeZone = gmt
let dateFromString = dateFormatter.dateFromString(date as String)
dateFormatter.dateFormat = "yyyy-mm-dd"
if dateFromString != nil{
let dateString = dateFormatter.stringFromDate(dateFromString!)
print(dateString)
}
有我丢失的东西吗?
在解析它之前,你是否尝试过仅在字符串前加上'19'? – luk2302
我从文档扫描的日期 –
正如您有日期:'46 -05-24'。因此,按照时间戳规则,它从1970年开始。因此,可能将当前的世纪2000作为默认值 –