PreciseISO8601DateFormatter

PreciseISO8601DateFormatter 是一个精确且特定的日期格式化器。Apple 内置的 DateFormatterISO8601DateFormatter 只能解析到毫秒级别。许多服务返回的日期具有纳秒精度,格式为 yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'PreciseISO8601DateFormatter 能够解析这些字符串并将日期编码为该格式。

PreciseISO8601DateFormatter 旨在成为 DateFormatterISO8601DateFormatter 的直接替代品。它是 Formatter 的子类。与 Apple 内置的日期格式化器一样,PreciseISO8601DateFormatter 是线程安全的。

重要的是要注意,如果您为格式化器提供了一个具有纳秒精度的日期,将其编码为字符串,然后再将该字符串解码回日期,则原始日期和解码后的日期将有所不同。解码后的日期将丢失其纳秒精度(即,日期的纳秒分量将从 448814988 变为 448814000)。这意味着,如果您使用 PreciseISO8601DateFormatter 来解码服务器返回的日期时间字符串,则还应使用此格式化器在本地存储编码后的日期时间字符串。

用法

let formatter = PreciseISO8601DateFormatter()

let date = formatter.date(from: "2021-02-03T12:48:00.000123Z")
let string = formatter.string(from: date) // "2021-02-03T12:48:00.000123Z"

安装

要将 PreciseISO8601DateFormatter 与 Swift Package Manager 一起使用,请将依赖项添加到您的 Package.swift 文件中

let package = Package(
  dependencies: [
    .package(url: "https://github.com/shareup/precise-iso-8601-date-formatter.git", from: "1.0.2")
  ]
)

许可证

PreciseISO8601DateFormatter 的许可证是标准的 MIT 许可证。您可以在 LICENSE 文件中找到它。