我正在尝试将此日期“07:05:45 PM”转换为“19:05:45”,此代码不起作用,我没有找到关于日期的其他问题的解决方案,代码:< / p>
Import Foundation
let string = "07:05:45 PM"
let dateFormatter = DateFormatter ()
dateFormatter.locale = Locale (identifier: "en_US_POSIX")
dateFormatter.dateFormat = "hh:mm a"
let date = dateFormatter.date (from: string)
print (date)
我试过
dateFormatter.dateFormat = "hh:mm:ss"
dateFormatter.dateFormat = "hh:mm:ss a"
dateFormatter.dateFormat = "hh:mm"
我删除了“PM”并尝试:
dateFormatter.dateFormat = "hh:mm"
dateFormatter.dateFormat = "hh:mm:ss" // that code is the only who worked, but doesn't solves the format problem
答案 0 :(得分:0)
您需要使用最后使用“a”的DateFormatter进行读取,然后不要只使用print(date)
打印日期,您需要使用另一个使用24小时时钟格式的DateFormatter( “HH”)并且没有AM / PM。
答案 1 :(得分:0)
你应该这样做:
let givenString = "07:05:45 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm:ss a"
if let date = dateFormatter.date (from: givenString) {
dateFormatter.dateFormat = "HH:mm:ss"
let desiredFormattedString = dateFormatter.string(from: date) // "19:05:45"
}
简单地说,您的给定日期格式为“hh:mm:ss a”,所需的日期格式为“HH:mm:ss”。通过设置适当的格式(使用dateFormatter
),desiredFormattedString
字符串应包含所需的格式化日期。
请注意,要获取24小时时钟约定的格式,您应该将时间设为HH
,显然 - hh
代表12小时时钟约定。