如何格式化日期字符串的DateFormatter(NSDateFormattter)

时间:2017-01-25 20:29:52

标签: objective-c swift

如何为日期字符串

构造格式化程序(NSFormatter)
Date dateString = "Sun Oct 30 2016 00:00:00 GMT+0530 (IST)"

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "E MMM d yyyy HH:mm:ss" // This line is not working
let dd: Date? = dateFormatter.date(from: dateString)
print("Date \(dd)") // Is returning null

API参考: https://developer.apple.com/reference/foundation/dateformatter

1 个答案:

答案 0 :(得分:2)

我认为你必须告诉DateFormatter忽略格林威治标准时间'部分,因为它会抛弃它。如果您有+0530,则表示GMT,因此您不需要它。

对于这个字符串:

let dateString = "Sun Oct 30 2016 00:00:00 GMT+0530"

此格式有效:

dateFormatter.dateFormat = "E MMM d yyyy HH:mm:ss 'GMT'x"

如果(IST)始终相同,您可以使用

告诉日期格式化程序忽略它
dateFormatter.dateFormat = "E MMM d yyyy HH:mm:ss 'GMT'x '(IST)'"

如果该部分可能有所不同,您应该在解析日期之前使用String方法删除该部分字符串。