日期格式Swift-多个输入格式

  • 本文关键字:格式 Swift- 日期 swift
  • 更新时间 :
  • 英文 :


我一直在遵循多个示例将我的iso日期字符串转换为本地日期字符串,并得到了以下工作:

func ISOStringToLocal(ISODateString: String) -> String {
let dateFormatterGet = DateFormatter()
dateFormatterGet.timeZone = NSTimeZone(name: "UTC")! as TimeZone
dateFormatterGet.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ" //Input Format with seconds
// dateFormatter.dateFormat = " yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ" //Input Format with milliseconds
let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "dd-MMM-yyyy hh:mm:ss"
if let date = dateFormatterGet.date(from: ISODateString) {
return dateFormatterPrint.string(from: date)
} else {
return ""
}
}

如何允许dateFormatterGet在毫秒和秒之间接受另一种输入格式?

您必须尝试两种格式,一种接一种:

func ISOStringToLocal(_ dateString: String) -> String {
let dateFormatterGet = DateFormatter()
dateFormatterGet.timeZone = TimeZone(identifier: "UTC")
dateFormatterGet.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ" // with seconds
let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "dd-MMM-yyyy hh:mm:ss"
if let date = dateFormatterGet.date(from: dateString) {
return dateFormatterPrint.string(from: date)
} else {
dateFormatterGet.dateFormat = "yyyy-MM-dd'T'HH:mm:ss:SSSZZZZZ" // with millis
if let date = dateFormatterGet.date(from: dateString) {
return dateFormatterPrint.string(from: date)
}
return ""
}
}
print(ISOStringToLocal("2017-07-01T13:24:00+02:00"))
print(ISOStringToLocal("2017-07-01T13:24:00:123+02:00"))

最新更新