从dateFormat获取错误的日期 [英] Getting Wrong Date from dateFormat

查看:91
本文介绍了从dateFormat获取错误的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于日期输入 00/02/02

格式样式为yy / MM / dd

I正在获得正确的输出,例如02/01/2000

For date Input "00/02/02"
formating Style is yy/MM/dd
I am getting correct output like 02/01/2000

但是问题是,尝试使用 00/01/01
获得类似 01/01的输出时/ 12100'

But issue is when trying with "00/01/01" getting output like this '01/01/12100'

但是我不知道为什么今年会像 12100

But I don't know why this year coming like 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格式。

year input type always as yy format.

推荐答案

按照@MartinR建议
inputFormatter.defaultDate设置为当前日期或Date(timeIntervalSinceReferenceDate:0)效果很好

As per the @MartinR suggestion settinginputFormatter.defaultDate to current date or Date(timeIntervalSinceReferenceDate: 0) its worked fine

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)
 }

这篇关于从dateFormat获取错误的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆