使用12小时时间格式从字符串转换为日期

时间:2018-10-30 03:44:33

标签: swift date-formatting

从昨天开始,我试图解决这个问题,但我放弃了。现在我有了字符串日期"2018-10-30 01:00 PM",当我尝试将其转换为日期时,时间格式将更改为24小时。我的意思是就像"2018-10-30 13:00:00 UTC"

这是我的代码:

let dateFormatter5 = DateFormatter()
dateFormatter5.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter5.locale = Locale(identifier: "en_US_POSIX")

dateFormatter5.timeZone = NSTimeZone(abbreviation: "GMT+0:00")! as TimeZone

let now = dateFormatter5.date(from: "2018-10-30 01:00 pm")!

我需要使用相同的时间格式(12小时)转换此字符串。 有想法吗?

1 个答案:

答案 0 :(得分:0)

如果您的原始日期字符串为UTC时区:

let dateStr = "2018-10-30 01:00 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
if let now = dateFormatter.date(from: dateStr) {
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss 'UTC'"
    dateFormatter.string(from: now)  // "2018-10-30 13:00:00 UTC"
}