如何在Swift中解析和创建带小数秒和UTC的ISO 8601 / RFC 3339格式的日期/时间
大家好!我是Swift新手,在处理日期时遇到了问题。我需要向服务器发送和从服务器接收ISO 8601格式的时间戳,其中包含小数秒和UTC时区。例如字符串:"2024-03-15T14:30:45.123Z"。
问题在于,Swift中的标准`DateFormatter`并不总是能正确解析小数秒。我尝试了以下代码:
```swift
let dateString = "2024-03-15T14:30:45.123Z"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
if let date = formatter.date(from: dateString) {
print("Date: \(date)")
} else {
print("Failed to parse")
}
```
但这运行不稳定。有时解析成功,有时失败。特别是当小数点后的数字位数变化时(例如".12"或".123456")。我还尝试使用了`ISO8601DateFormatter`,但在处理小数秒时也遇到了困难。
我需要:
1) 可靠地解析不同精度的小数秒字符串(从1