日期输入“00/02/02”
格式样式为yy/MM/dd
我得到了正确的输出,如2000年1月2日
但问题是在尝试“00/01/01”时
得到这样的输出'01/01/12100'
但我不知道为什么今年会像12100年一样
我的代码是
let str = "00/01/01"
let inputFormatter = DateFormatter()
inputFormatter.dateFormat = "yy/MM/dd"
if let showDate = inputFormatter.date(from: str) {
inputFormatter.dateFormat = "dd/MM/yyyy"
let resultString = inputFormatter.string(from: showDate)
print(resultString)
}
年份输入类型始终为yy格式。
最佳答案
根据@MartinR建议
将inputFormatter.defaultDate设置为当前日期或日期(TimeIntervalsIncerenceDate:0)其工作正常
let str = "00/01/01"
let inputFormatter = DateFormatter()
inputFormatter.defaultDate = Date(timeIntervalSinceReferenceDate: 0)
inputFormatter.dateFormat = "yy/MM/dd"
if let showDate = inputFormatter.date(from: str) {
inputFormatter.dateFormat = "dd/MM/yyyy"
let resultString = inputFormatter.string(from: showDate)
print(resultString)
}
关于swift - 从dateFormat获取错误的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52701626/