我有一个日期字符串:“ 2017-09-27T13:03:47.86 + 00:00”和dateFormat:“ yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZZZZZZZ”用于NSDateFormatter,但使用DateFormatter.date(string:)
返回nil任何想法都可以与迅速的DateFormatter一起使用?
您需要转义'T'并使用适当的时区符号。请注意,这取决于您的日期字符串是否表示带Z为“ XXXXX”或不带+00:00为“ xxxxx”的UTC(格林尼治标准时间为零秒)时区:
func getStringFormat(str:String) -> String {
let dateString = "2015-08-14T20:02:25-04:00"
let formatter = DateFormatter()
formatter.dateFormat = "MMMM dd, yyyy 'at' hh:mm:ss a 'UTC'Z" //If you dont want static "UTC" you can go for ZZZZ instead of 'UTC'Z.
formatter.timeZone = TimeZone(abbreviation: "IST")
if let date = formatter.date(from: dateString) {
formatter.dateFormat = "yyyy-MM-dd HH:mm"
let string = formatter.string(from: date)
print(string)
return string
}
}
请参考此很棒的文档以语法格式设置日期和时间,这里是 link!