iPhone 24hr日期格式的日期转换始终为零

时间:2017-09-12 07:20:30

标签: ios xcode swift3 nsdateformatter

我试图将字符串转换为Date,正确地工作在12hr日期格式。当我将设备日期格式切换为24时,它总是返回零。请检查以下代码

    let formatter = DateFormatter()
    formatter.dateFormat = "h:mm a"
    let date = formatter.date(from: "6:00 am")

2 个答案:

答案 0 :(得分:4)

根据Technical Q&A QA1480

  

如果您使用固定格式的日期,则应首先将日期格式化程序的区域设置设置为适合您的固定格式的区域设置。在大多数情况下,选择的最佳语言环境是“en_US_POSIX”,这是一个专门设计用于产生美国英语结果的语言环境,无论用户和系统偏好如何。

因此,为防止使用设备的区域设置解释日期,您需要设置var storedObj = JSON.parse(localStorage.getItem('yourName'); //update it storedObj.EmployerDetails.EmpNo = '5'; //store again localStorage.setItem('yourName', JSON.stringify(storedObj)); 的{​​{1}}属性

locale

注意:在设置DateFormatter

之前设置let formatter = DateFormatter() formatter.locale = Locale(identifier: "en_US_POSIX") formatter.dateFormat = "hh:mm a" let date = formatter.date(from: "6:00 am") 非常重要

答案 1 :(得分:-4)

试试这个

   let formatter = DateFormatter()
   formatter.dateFormat = "h:mm a"
   if let date = formatter.date(from: "14:00 am"){
    print(date)
   }else {
     formatter.dateFormat = "H:mm a"
    if let setdate = formatter.date(from: "14:00 am") {
     print(setdate)
    }
   }