时间错了,但日期很快就正确了

问题描述

我正在从datepicker中获取文本字段中的日期。在文本字段中获取正确的日期和时间,但是从dateFormatter时间不能正确显示,但是日期可以完美显示

这是我的代码

 let dateFormatter = DateFormatter()
  dateFormatter.dateFormat = "MM/dd/yy,hh:mm a"
  let dateFormate = dateFormatter.date(from: dateLabel.text!)
    
    print("out put \(dateLabel.text!)")//log out put 8/25/20,3:40 PM
    print("out put  \(dateFormate)")  // out put  Optional(2020-08-25 10:08:00 +0000)

我输入正确的日期,但是为什么输入错误的时间呢?

注销put 8/25/20,3:40 PM // textfield o / p

输出put可选(2020-08-25 10:08:00 +0000)// dateFormate o / p

我在哪里弄错了,请帮我提供代码

解决方法

根据您的要求,首先需要创建一个DateFormatter来解析从dateLabelDate对象的日期字符串:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "M/d/yy,h:m a"
dateFormatter.locale = Locale(identifier: "in") // here place your locale identifier
let date = dateFormatter.date(from: dateLabel.text!)

,然后使用新的DateFormatter将Date对象转换为您要打印的格式。例如:

let outputDateFormatter = DateFormatter()
outputDateFormatter.dateFormat = "M-d-yyyy,h:m a"
outputDateFormatter.locale = Locale(identifier: "in")
print(outputDateFormatter.string(from: date!))
,
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yy,hh:mm a"
let date = dateFormatter.date(from: (dateLabel.text!))
print(dateFormatter.string(from: date!))