swift - 从 dateFormat 获取错误的日期

标签 swift date dateformatter

对于日期输入“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/

相关文章:

GMT/UTC 的 Javascript 倒计时器

ios - 如何仅在 iOS 中获取日期而不是时间

Swift - 将字符串转换为日期,返回正确日期前一天

ios - 如何快速获取NSRange?

Swift 核心数据预设值

java - SimpleDateFormat 给出 java.lang.classcastexception : java. util.date

ruby-on-rails - 如何使用 Ruby on Rails 查找今天、昨天等的记录?

swift - 在 DateFormatter 中使用 NumberFormatter

swift - 如何在启动时查询数据库?

ios - 无法在 Swift 中使用协议(protocol)作为另一个协议(protocol)中的关联类型