NSDateFormatter dateFromString 结果错误?
NSDateFormatter dateFromString wrong result?
我正在尝试从 NSString
中获取 NSDate
对象。问题是,我在这个过程中 losing
1 天。
这是 NSString
:2015-08-01
,这里是代码:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *result = [df dateFromString:dateString];
result
原来是2015-07-31 21:00:00 +0000
。
怎么会这样?我不明白。另外,21:00:00
是从哪里来的?无论 运行 真实设备或模拟器上的代码如何,我都会得到相同的结果。
知道为什么吗?我怀疑 timezone
有问题。但是,我得到 UTC
格式的 dateString
,并且我没有改变它。想法?
设置时区就可以了
NSString *dateString = @"2015-08-01";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *result = [df dateFromString:dateString];
检查时区。
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
我正在尝试从 NSString
中获取 NSDate
对象。问题是,我在这个过程中 losing
1 天。
这是 NSString
:2015-08-01
,这里是代码:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *result = [df dateFromString:dateString];
result
原来是2015-07-31 21:00:00 +0000
。
怎么会这样?我不明白。另外,21:00:00
是从哪里来的?无论 运行 真实设备或模拟器上的代码如何,我都会得到相同的结果。
知道为什么吗?我怀疑 timezone
有问题。但是,我得到 UTC
格式的 dateString
,并且我没有改变它。想法?
设置时区就可以了
NSString *dateString = @"2015-08-01";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *result = [df dateFromString:dateString];
检查时区。
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];