为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

智慧大石 2019-06-25 11:06:10

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)上返回为零。这太奇怪了。


查看完整描述

1 回答

?
慕哥6287543

从…技术问答QA 1480-NSDateFormat和互联网日期(强调后加):

另一方面,如果您使用的是固定格式的日期,则应该首先,将日期格式化程序的区域设置为适合固定格式的内容。在大多数情况下,可以选择的最佳地区是“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"// ...

另见处理NSDateForMatylocale“feechur”的最佳方法是什么?.


查看完整回答
反对 回复 2019-06-25

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信