代码之家  ›  专栏  ›  技术社区  ›  tech_human

当语言环境设置为德语时,Date formatter Date函数返回nil

  •  0
  • tech_human  · 技术社区  · 6 年前

    以下是代码摘录:

    func mapping(map: Map) {
        time      <- (map["time"], TransformOf<Date, String>(fromJSON: {
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "HH:mm:ss"
            //dateFormatter.timeZone = TimeZone(abbreviation: "EEST")
            if let argument = $0 {
                let date = dateFormatter.date(from: argument)
                return dateFormatter.date(from: argument)
            }
            return nil
            }}
    

    $0 是字符串吗 "22:12:00" .我用“让日期”来查看它返回了什么,结果是零。我在这里查找了格式代码: http://waracle.net/iphone-nsdateformatter-date-formatting-table/

    代码实际上应该工作。我做错了什么?

    编辑 :添加了整个功能

    编辑2

    0 回复  |  直到 9 年前
        1
  •  36
  •   Martin R    7 年前

    从…起 Technical Q&A QA1480 – NSDateFormatter and Internet Dates (重点加上):

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

    这将防止日期被根据 用户的区域设置:

    let dateFormatter = DateFormatter()
    // Set the locale first ...
    dateFormatter.locale = Locale(identifier: "en_US_POSIX")
    // ... and then the date format:
    dateFormatter.dateFormat = "HH:mm:ss"
    
    // ...
    

    What is the best way to deal with the NSDateFormatter locale "feechur"? .

    推荐文章