Swift NSDateFormatter时区不起作用

时间:2015-09-07 16:22:56

标签: ios swift nsdateformatter

我正在尝试将日期字符串转换为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小时。

0 个答案:

没有答案