Objective c 将NSString转换为NSDate。损失了一天

Objective c 将NSString转换为NSDate。损失了一天,objective-c,iphone,cocoa,date,Objective C,Iphone,Cocoa,Date,我的输出是: NSString *dateString = @"20.10.2010"; NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateFormat:@"dd.MM.yyyy"]; [dateFormatter setLocale:[NSLocale currentLocale]]; NSLog(@"%@", [dateFormatter

我的输出是:

NSString *dateString = @"20.10.2010";
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"dd.MM.yyyy"];
[dateFormatter setLocale:[NSLocale currentLocale]];

NSLog(@"%@", [dateFormatter dateFromString:dateString]);

为什么少了一天?

可能是因为您所在的地区指定您在GMT+2


这意味着给定的日期被解释为2010-10-2000:00GMT+2,因此在GMT+0中,这是2010-10-1922:00

可能是因为您所在的区域特定于GMT+2


这意味着给定的日期被解释为2010-10-2000:00GMT+2,因此在GMT+0中,这是2010-10-1922:00

你没有损失1天,而是损失了2小时。但显示器是格林尼治标准时间。 你想和你的约会对象做什么?
请参阅更改输出格式设置程序的步骤。您没有损失1天,而是损失了2小时。但显示器是格林尼治标准时间。 你想和你的约会对象做什么?
请参阅更改输出格式化程序的步骤

好的,如何更改此选项?我的iphone完全设置为一种语言环境:键盘、语言和日历设置为德语。@多巴胺:你可能不想。只需使用当前区域设置打印日期
[someObject description]
通常是一个不好的选择,因为苹果可能会在不通知的情况下更改它,而且它通常用于调试。@多巴胺:如果您真的想在评论中找到问题的答案,我建议您创建一个新问题,专门询问如何将日期解释为GMT+0。好的,如何更改此选项?我的iphone完全设置为一种语言环境:键盘、语言和日历设置为德语。@多巴胺:你可能不想。只需使用当前区域设置打印日期
[someObject description]
显示给用户通常是一个不好的选择,因为苹果可能会在不事先通知的情况下更改它,而且它通常用于调试。@Dopada:如果您真的想在评论中发布问题的答案,我建议您创建一个新问题,专门询问如何将日期解释为GMT+0。
2010-10-19 22:00:00 GMT