GMT 日期字符串转换为 UTC 日期
GMT date string getting converted to UTC Date
**
- 获取 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
}
- 输出
开始日期---2016-06-29 00:00:00 GMT+5:30
结束日期----2016-06-30 03:57:39 GMT+5:30
现在尝试从输出字符串中获取 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 步。我看起来你正在使用 NSLog 或 Swift 打印来显示结果日期。这总是在 UTC 中完成。
如果您想以不同的格式或使用您当地的时区查看您的日期,您需要第二个日期格式化程序来将 NSDate 转换为输出日期字符串。
流程如下:
input date string -> input date formatter -> NSDate
NSDate -> output date formatter -> display date in local time zone
- 获取 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
}
- 输出 开始日期---2016-06-29 00:00:00 GMT+5:30 结束日期----2016-06-30 03:57:39 GMT+5:30
现在尝试从输出字符串中获取 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 步。我看起来你正在使用 NSLog 或 Swift 打印来显示结果日期。这总是在 UTC 中完成。
如果您想以不同的格式或使用您当地的时区查看您的日期,您需要第二个日期格式化程序来将 NSDate 转换为输出日期字符串。
流程如下:
input date string -> input date formatter -> NSDate
NSDate -> output date formatter -> display date in local time zone