在swift iOS中获取UTC日期到本地日期

时间:2016-07-12 11:38:17

标签: ios swift timezone nsdate utc

我想在swift中将UTC日期转换为本地日期但是在字符串中获取UTC To Local日期之后我再次将该字符串转换为NSDate但我总是以UTC日期格式获取,下面是我的代码

日期:UTC:2016-07-20 18:30:00 +0000

我在本地日期尝试此日期,请查看以下代码:

let dateInUTC = NSDate()
        let seconds: Int = NSTimeZone.systemTimeZone().secondsFromGMT
        print(seconds)
        let localDateFormatter: NSDateFormatter = NSDateFormatter()
        localDateFormatter.dateFormat = "MM/dd/yyyy HH:mm"
        localDateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: seconds)
        let lastDate: String = localDateFormatter.stringFromDate(dateInUTC)
        print(lastDate)

此时我正在“07/12/2016 16:56:36 GMT + 5:30”,意味着我在字符串中获得了本地日期,但我想在NSDate中使用此日期,所以我再次在NSDate中转换此字符串日期,请查看以下

    let getDate:NSDate = localDateFormatter.dateFromString(lastDate)!
    print(getDate)

但是在这个阶段我再次获得UTC的日期(2016-07-12 11:26:36 +0000),但我想在当地约会,

  • 我在Swift中尝试了很多次但是没有从字符串获取本地日期,我在objective-c中使用了这行代码,它在obj-c中正常工作但是当我在swift中尝试时总是得到UTC日期,建议我并给我正确的解决方法。

1 个答案:

答案 0 :(得分:1)

NSDates不保存时区信息。在检索时,您总是必须使用带有时区的dateFormatter。