【问题标题】:DateFormatter doesn't work Swift 3DateFormatter 不起作用 Swift 3
【发布时间】:2017-04-03 16:43:23
【问题描述】:

我正在尝试将此日期“07:05:45 PM”转换为“19:05:45”,此代码不起作用,我在有关日期的其他问题中没有找到解决方案,代码:

 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

【问题讨论】:

  • "hh:mm:ss a" 应该可以解析

标签: swift date swift3 formatting nsdateformatter


【解决方案1】:

您需要使用末尾使用“a”的 DateFormatter 读取,然后不要只使用 print(date) 打印日期,您需要使用另一个使用 24 小时时钟格式的 DateFormatter(“HH ") 并且没有上午/下午。

【讨论】:

    【解决方案2】:

    你应该这样做:

    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 小时制格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 2021-02-05
      相关资源
      最近更新 更多