创建错误的 NSDate
creating a wrong NSDate
这是代码
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:13];
[comps setMonth:6];
[comps setYear:2015];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
NSLog(@"date = %@", date);
结果是2015-06-12 23:00:00 +0000
12?今天是 13!!!
为什么会这样?漏洞?
问题在于 NSLog()
和 NSDate
description
方法显示格林威治标准时间 (UTC) 日期。请注意时间偏移:“+0000”,这可能不是您的时区。
所有日期都以格林威治标准时间内部存储。要获取当前或其他时区的字符串,请使用 NSDateFormatter
.
这是代码
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:13];
[comps setMonth:6];
[comps setYear:2015];
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];
NSLog(@"date = %@", date);
结果是2015-06-12 23:00:00 +0000
12?今天是 13!!!
为什么会这样?漏洞?
问题在于 NSLog()
和 NSDate
description
方法显示格林威治标准时间 (UTC) 日期。请注意时间偏移:“+0000”,这可能不是您的时区。
所有日期都以格林威治标准时间内部存储。要获取当前或其他时区的字符串,请使用 NSDateFormatter
.