将字符串转换为 swift 中的日期后未显示日期

date is not showing after convert the string to date in swift

我有字符串并正在转换为日期格式,但是当我转换后日期显示正确但时间显示格式错误

firsDateString : 2019-Mar-15 9:00 AM
secondName : 2019-Mar-15 8:00 PM

字符串转换成日期格式

let addedDate = firsDateString
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MMM-dd hh:mm  a"
let date1 = formatter.date(from: addedDate)
print("DATE \(date1)")

在那之后我得到这个值:

DATE Optional(2019-03-15 03:30:00 +0000)

怎样才能得到正确的日期格式?

检查这个:

    let addedDate = firsDateString
    let formatter = DateFormatter()
    formatter.timeZone = (NSTimeZone(name: "UTC")! as TimeZone)
    formatter.dateFormat = "yyyy-MMM-dd hh:mm a"
    let date1 = formatter.date(from: addedDate)
    print("DATE \(String(describing: date1!))")

使用 like ,但不是有效答案,它可能会根据您的情况起作用,但如果您需要,请遵循选项 2,它将涵盖所有情况

let formatter = DateFormatter()

formatter.dateFormat = "yyyy-MMM-dd hh:mm a"

let date1 = formatter.date(from: "2019-Mar-15 9:00 AM")

formatter.amSymbol = ""

formatter.pmSymbol = ""

let currentDateStr = formatter.string(from: date1!)

打印("currentDateStr (currentDateStr)")

基于@JoakimDanielson 的观点

How can this be the accepted answer when you no longer can tell the difference between 8 in the morning and 8 in the evening

这里需要按照24小时格式,我更新一下我的回答,

选项 2

    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MMM-dd hh:mm a"
    let date1 = formatter.date(from: "2019-Mar-15 9:00 AM")
    formatter.dateFormat = "yyyy-MMM-dd HH:mm"
    let currentDateStr = formatter.string(from: date1!)
    print("currentDateStr \(currentDateStr)")

输出