【发布时间】:2020-10-04 18:02:23
【问题描述】:
我正在使用 swift5 开发一个 iOS 项目,并遇到如下日期格式错误。
“日期字符串与格式化程序期望的格式不匹配。”
我正在为 swift5(https://github.com/OpenAPITools/openapi-generator/tree/master/samples/client/petstore/swift5/default) 使用 openapi-generator,它生成了以下格式化程序。
static let withoutSeconds: DateFormatter = {
let formatter = DateFormatter()
formatter.calendar = Calendar(identifier: .iso8601)
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
return formatter
}()
private func setup() {
calendar = Calendar(identifier: .iso8601)
locale = Locale(identifier: "en_US_POSIX")
timeZone = TimeZone(secondsFromGMT: 0)
dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
}
override init() {
super.init()
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
override public func date(from string: String) -> Date? {
if let result = super.date(from: string) {
return result
}
return OpenISO8601DateFormatter.withoutSeconds.date(from: string)
}
效果很好,但日期时间格式存在上述问题
我们的 api 返回以下 json 字符串作为日期时间,我无法让它在上面的代码中解析这个字符串。
"createdDate": "2020-03-01T05:42:15.0503394",
"updatedDate": "2020-09-02T07:06:56.6389018",
根据本文档,从我们的 api 返回的日期时间字符串似乎具有 Roundtrip fromat 说明符(https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings#Roundtrip)
尝试了很多东西,但到目前为止都没有运气。
提前感谢您的帮助。
【问题讨论】:
标签: swift5 format-specifiers openapi-generator dateformatter