解析来自 Fitbit API 的日期字符串

Parsing date string coming from Fitbit API

我这辈子都不知道如何将从 Fitbit API 返回的日期字符串转换为 iOS 上的 NSDate/Date 对象。

日期字符串格式如下:

2017-01-21T10:39:43.000

我正在使用的 API 记录在此处:https://dev.fitbit.com/docs/devices/,每个设备在 JSON 中返回 "lastSyncTime" 属性。

我尝试了几种不同的日期格式,它们不断返回 nil 日期值。

          let formatter = DateFormatter()
//        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
//        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'Z'"
//        formatter.dateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"
//        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssz"
//        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSz"
        formatter.dateFormat = "yyyy-MM-dd"
        let date = formatter.date(from: lastSyncTime)

我试过所有这些不同的日期格式都无济于事。

如有任何帮助,我们将不胜感激。谢谢。

使用这个格式化程序来解析它。

let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
formatter.date(from: dateString)

希望对您有所帮助

这对我有用:

import Foundation

let date = "2017-01-21T10:39:43.000"
let formatter = DateFormatter()

formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
let formatDate = formatter.date(from: date)

print(formatDate!)

Output: 2017-01-21 16:39:43 +0000