我正在尝试将日期字符串转换为NSDate格式,但我没有得到正确的结果。我希望NSDateFormatter忽略与时区有关的所有内容,只需使用欧洲/阿姆斯特丹时区,无论日期字符串中的时区设置如何,因为它只会成为此时区内人员的应用程序。
我的剧本:
func convertDate(dateStr: String) -> NSDate?{
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
dateFormatter.timeZone = NSTimeZone(name: "Europe/Amsterdam")
var date = dateFormatter.dateFromString(dateStr)
if (date != nil) {
return date
} else {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter.timeZone = NSTimeZone(name: "Europe/Amsterdam")
date = dateFormatter.dateFromString(dateStr)
if (date != nil) {
return date
}
}
return nil
}
我使用此功能将日期转换为NSDate格式,日期可以是2种格式,可以是第一种格式,也可以是最后一种格式,这就是我实施此简单检查的原因。
输入字符串:2015-09-07T12:48:00 + 0200
输出日期:2015-09-07 10:48:00 +0000输入字符串:2015-09-07T10:35:00
输出日期:2015-09-07 08:35:00 +0000输入字符串:2015-09-07T14:40:00
输出日期:2015-09-07 12:40:00 +0000
由于某种原因,日期总是落后2小时。