相关疑难解决方法(0)

Swift DateFormatter可选毫秒

我有以下代码来解析ISO8601日期.

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
Run Code Online (Sandbox Code Playgroud)

问题有时候日期是这样的格式2018-01-21T20:11:20.057Z,有时候格式是这样的2018-01-21T20:11:20Z.

所以基本上它部分时间是.SSS毫秒级,有时则不是.

如何设置日期格式化程序以使该部分可选?

编辑

我忘了在我刚才意识到的问题中提到一些细节.所以我在Swift 4中使用了JSON Codable功能.所以如果失败就会抛出错误.

所以我基本上有以下代码.

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .formatted(isoMilisecondDateFormatter())

return try decoder.decode([Person].self, from: _people)
Run Code Online (Sandbox Code Playgroud)

_people以下是JSON对象的示例.

[
    {
        "name": "Bob",
        "born": "2018-01-21T20:11:20.057Z"
    },
    {
        "name": "Matt",
        "born": "2018-01-21T20:11:20Z"
    }
]
Run Code Online (Sandbox Code Playgroud)

我正在使用的API非常不一致,所以我必须处理多种类型的数据.

nsdateformatter ios swift

2
推荐指数
2
解决办法
3068
查看次数

标签 统计

ios ×1

nsdateformatter ×1

swift ×1