NSDate 具有相反的 AM/PM 值
NSDate has the opposite AM/PM value
我正在使用此代码将 NSDate
转换为我的本地时区,显示了正确的小时和日期,但 AM/PM 部分始终不正确。
let date1 = "2015-05-14 19:00:00 +0000"
let date2 = "2015-06-12 04:50:00 +0000"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzzz"
let date = dateFormatter.dateFromString(date1)
let timeZone = NSTimeZone.localTimeZone()
let seconds: NSInteger = timeZone.secondsFromGMTForDate(date!)
var d = NSDate(timeInterval: NSTimeInterval(seconds), sinceDate: date!)
date1
返回 May 14, 2015, 7:AM
date2
返回 Jun 11, 2015, 4:50PM
这两个应该有相反的 AM/PM 值,谁能告诉我我做错了什么?
(来自我上面的评论) NSDate
没有时区。 date1/date2 是 字符串 指定 GMT 时间。如果您想在本地时区打印 date
,请使用日期格式化程序将其转换为字符串。
如果您的意图是 解释 date1/date2 就好像它们是在您当地的时区而不是格林威治标准时间,那么您的更正方向是错误的(替换 seconds
-seconds
).
你的结果不是
具有相反的 AM/PM 值,但只比您预期的早 12 小时
他们是(这是有道理的,因为山地时间是 GMT-06)。
我正在使用此代码将 NSDate
转换为我的本地时区,显示了正确的小时和日期,但 AM/PM 部分始终不正确。
let date1 = "2015-05-14 19:00:00 +0000"
let date2 = "2015-06-12 04:50:00 +0000"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss zzzz"
let date = dateFormatter.dateFromString(date1)
let timeZone = NSTimeZone.localTimeZone()
let seconds: NSInteger = timeZone.secondsFromGMTForDate(date!)
var d = NSDate(timeInterval: NSTimeInterval(seconds), sinceDate: date!)
date1
返回 May 14, 2015, 7:AM
date2
返回 Jun 11, 2015, 4:50PM
这两个应该有相反的 AM/PM 值,谁能告诉我我做错了什么?
(来自我上面的评论) NSDate
没有时区。 date1/date2 是 字符串 指定 GMT 时间。如果您想在本地时区打印 date
,请使用日期格式化程序将其转换为字符串。
如果您的意图是 解释 date1/date2 就好像它们是在您当地的时区而不是格林威治标准时间,那么您的更正方向是错误的(替换 seconds
-seconds
).
你的结果不是 具有相反的 AM/PM 值,但只比您预期的早 12 小时 他们是(这是有道理的,因为山地时间是 GMT-06)。