我如何将(2020-02-21 06:07:21 +0000)转换为“ 2021年2月21日12:00 AM”?

问题描述 投票:-1回答:1

我正在使用设备时间来获取日期组件。这可以正常使用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)
swift nsdateformatter nsdatecomponents nsdatepicker
1个回答
1
投票

我刚刚在下面尝试过,在两种情况下都可以正常工作。使用AMPM24Format,并且如果在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


0
投票

尝试,

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)
}

0
投票

Swift-这个答案帮助了我

swift - how to convert date from am/pm to 24 hour format

//也将我的作品发布在这里。

  1. 我在24小时内有设备甲。
  2. 我需要12小时。
  3. 所以我只是将日期对象转换为此代码段的必需格式。 let df = DateFormatter() df.dateFormat = "d MMM yyyy h:mm a" let time12 = df.string(from: Date()) print(time12)
© www.soinside.com 2019 - 2024. All rights reserved.