一个类型安全的 Swift 包装器,用于 IANA 时区标识符,以及 Foundation TimeZone 标识符的扩展。
将 SwiftTZ 添加到你的 Package.swift 文件
dependencies: [
.package(url: "https://github.com/vamsii777/SwiftTZ.git", from: "0.2.0")
]
要使用时区,请使用 TimeZoneIdentifier 创建 TimeZone 实例
import SwiftTZ
let newYork = TimeZone(.americaNewYork)
print(newYork.identifier) // "America/New_York"
接受 TimeZoneIdentifier 的 TimeZone 初始化器永远不会失败,因为标识符集合是静态已知的,并且已知是有效的。
let newYork = TimeZone(.americaNewYork)
print(newYork.identifier) // "America/New_York"
let tokyo = TimeZone(identifier: .asiaTokyo)
print(tokyo.identifier) // "Asia/Tokyo"
let london = TimeZone(.europeLondon) // "Europe/London"
let identifier = london.timeZoneIdentifier
print(identifier) // "europeLondon"
Sources/SwiftTZ:主库Sources/SwiftTZGenerator:生成器可执行文件,用于获取最新的 IANA 时区数据库Tests/SwiftTZTests:单元测试欢迎贡献!如果您遇到 bug 或有功能请求,请随时打开 issue 或提交 pull request。
git clone https://github.com/vamsi777/SwiftTZ.git
cd SwiftTZ
TimeZoneIdentifier.swift 文件swift run SwiftTZGenerator
SwiftTZ 基于 MIT 许可证发布。 有关详细信息,请参阅 LICENSE 文件。