我正在使用设备时间来获取日期组件。这可以正常使用12小时formate,但是如果用户将设备时间更改为24小时,则会显示错误的计算。使用以下方法进行转换,但始终返回nil。
let dateAsString = "\(Date())"
let df = DateFormatter()
df.dateFormat = "yyyy-mm-dd HH:mm:ss zzz"
let date = df.date(from: dateAsString)
df.dateFormat = "d MMM yyyy h:mm a"
let time12 = df.string(from: date!)
print(time12)
我刚刚在下面尝试过,在两种情况下都可以正常工作。使用AM
或PM
或24Format
,并且如果在a
中删除了formatter.dateFormat = "dd MMM yyyy HH:mm a"
,则会显示24种格式。甚至我在我的代码中使用它。
let someDate = Date()
let formatter = DateFormatter()
formatter.dateFormat = "dd MMM yyyy HH:mm a"
let someDateTime = formatter.string(from: someDate)
print(someDateTime)
打印:
21 Feb 2020 09:35 AM
尝试,
let str = "2020-02-21 06:07:21 +0000"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-mm-dd hh:mm:ss zzz"
if let date = formatter.date(from: str) {
formatter.dateFormat = "dd MMM yyyy hh:mm a"
let formattedDate = formatter.string(from: date)
print(formattedDate)
}
Swift-这个答案帮助了我
swift - how to convert date from am/pm to 24 hour format
//也将我的作品发布在这里。
let df = DateFormatter()
df.dateFormat = "d MMM yyyy h:mm a"
let time12 = df.string(from: Date())
print(time12)