对于日期输入“00/02/02”
格式样式为 yy/MM/dd
我得到正确的输出,如 02/01/2000
但问题是尝试使用“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的建议 将输入Formatter.default Date 设置为当前日期或Date(timeIntervalSinceReferenceDate: 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/54800640/