首页 > 解决方案 > 如何在 Swift 中解析这个日期时间

问题描述

我正在尝试解析此 DateTime,但无法检测到格式并且解析失败。它如下所示:

20190507T000000.000

我尝试了我能想象到的每一种格式,但老实说,我对日期格式的理解还很遥远。我尝试将此格式设置为 dateFormatter 因为我认为这最接近它:

"yyyyMMddTHHmmss.sss"

另外,我尝试使用ISO8601DateFormatter()which 什么也没给我。我猜这个 DateTime 是一些 UTC 日期。

标签: iosswiftnsdateformatterutciso8601

解决方案


创建了一个字符串的扩展。

extension String {

extension String {

public func dateIn(formate: String) -> Date? { // gives in same formate
    if formate.isEmpty { return Date() }
    
    let formatter = DateFormatter()
    formatter.timeZone = TimeZone.current
    formatter.dateFormat = formate
    if let dt = formatter.date(from: self) {
        return dt
    }
    return nil
}

}

如何使用 :

let stringValue : String = "20190507T000000.000"
print(stringValue.dateIn(formate: "yyyyMMdd'T'HHmmss.SSS"))

推荐阅读