Bal*_*cze 6 iso8601 nsdateformatter ios swift
我有以下字符串: 20180207T124600Z
如何将其转换为 Date 对象?
这是我当前的代码,但它返回nil:
let dateString = "20180207T124600Z"
let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = .withFullTime
print(dateFormatter.date(from: dateString))
Run Code Online (Sandbox Code Playgroud)
P. *_*Ent 16
如果你有一个约会,例如:
let isoDate = "2018-12-26T13:48:05.000Z"
Run Code Online (Sandbox Code Playgroud)
并且您想将其解析为日期,请使用:
let isoDateFormatter = ISO8601DateFormatter()
isoDateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
isoDateFormatter.formatOptions = [
.withFullDate,
.withFullTime,
.withDashSeparatorInDate,
.withFractionalSeconds]
if let realDate = isoDateFormatter.date(from: isoDate) {
print("Got it: \(realDate)")
}
Run Code Online (Sandbox Code Playgroud)
重要的是为您拥有的数据的每个部分提供所有选项。就我而言,秒数表示为分数。
您可以将 ISO8601 日期格式指定给 NSDateFormatter 以获取日期:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd'T'HHmmssZ"
print(dateFormatter.date(from: dateString)) //2018-02-07 12:46:00 +0000
Run Code Online (Sandbox Code Playgroud)
您需要指定格式选项ISO8601DateFormatter以符合您的要求(年、月、日和时间),下面是一个示例:
//: Playground - noun: a place where people can play
import UIKit
let dateString = "20180207T124600Z"
let dateFormatter = ISO8601DateFormatter()
dateFormatter.formatOptions = [
.withYear,
.withMonth,
.withDay,
.withTime
]
print(dateFormatter.string(from: Date()))
print(dateFormatter.date(from: dateString))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10320 次 |
| 最近记录: |