GMT 日期字符串转换为 UTC 日期

GMT date string getting converted to UTC Date

**

  1. 获取 GMT 日期字符串

**

   func getGMTString(dateAsDate:NSDate) -> String
    {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzz"//this your string date format
        // dateFormatter.locale = NSLocale.currentLocale()
        //        dateFormatter.timeZone = NSTimeZone(name: "GMT")
        let date = dateFormatter.stringFromDate(dateAsDate)

        return date
    }
  1. 输出 开始日期---2016-06-29 00:00:00 GMT+5:30 结束日期----2016-06-30 03:57:39 GMT+5:30
  2. 现在尝试从输出字符串中获取 GMT 日期对象

     func getGMTDate(string:String) -> NSDate {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzz"//this your string date format
      // dateFormatter.timeZone = NSTimeZone(abbreviation: "GMT")!
      //  dateFormatter.locale = NSLocale.currentLocale()
        let date = dateFormatter.dateFromString(string)
    
    
        return date!
    }
    

    问题:输出日期对象混乱 startDateOBJECT---2016-06-28 18:30:00 +0000 endDateOBJECT----2016-06-30 17:30:00 +0000

  3. 无法确定问题所在

我不明白你的第 3 步。我看起来你正在使用 NSLog 或 Swift 打印来显示结果日期。这总是在 UTC 中完成。

如果您想以不同的格式或使用您当地的时区查看您的日期,您需要第二个日期格式化程序来将 NSDate 转换为输出日期字符串。

流程如下:

input date string -> input date formatter -> NSDate

NSDate -> output date formatter -> display date in local time zone