DateFormat不返回“HH:mm:SS”的日期

DateFormat不返回“HH:mm:SS”的日期

下面是代码摘录:

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-nsdateformtter-日期-格式化-table/

代码实际上应该有效。我做错什么了?

编辑*增加整个功能

EDIT 2:我刚刚注意到它在iPhone7IOS 10.1模拟器上运行正常,但在我的iPod10.1.1(2016)上返回为零。这太奇怪了。


智慧大石
浏览 631回答 1
1回答

慕哥6287543

从…技术问答QA 1480-NSDateFormat和互联网日期(强调后加):另一方面,如果您使用的是固定格式的日期,则应该首先,将日期格式化程序的区域设置为适合固定格式的内容。在大多数情况下,可以选择的最佳地区是“en_US_POSIX”,这是一种专为生成美式英语结果而设计的语言环境,而不管用户和系统首选项如何。这将防止根据用户的区域设置解释日期:let&nbsp;dateFormatter&nbsp;=&nbsp;DateFormatter()//&nbsp;Set&nbsp;the&nbsp;locale&nbsp;first&nbsp;...dateFormatter.locale&nbsp;=&nbsp;Locale(identifier:&nbsp;"en_US_POSIX") //&nbsp;...&nbsp;and&nbsp;then&nbsp;the&nbsp;date&nbsp;format:dateFormatter.dateFormat&nbsp;=&nbsp;"HH:mm:ss"//&nbsp;...另见处理NSDateForMatylocale“feechur”的最佳方法是什么?.
打开App,查看更多内容
随时随地看视频慕课网APP