2010-10-11 54 views
1
NSString *dateString = @"20.10.2010"; 
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setDateFormat:@"dd.MM.yyyy"]; 
[dateFormatter setLocale:[NSLocale currentLocale]]; 

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

我的输出是:将NSString转换为NSDate。 1天丢失

2010-10-19 22:00:00 GMT 

为什么为一天失去了什么?

回答

3

可能是因为您的语言环境特定于GMT +2。

这意味着给定的日期是在GMT + 0这2010-10-19 22:00解释为2010-10-20 00:00 GMT + 2,因此。

+0

好的,我该如何更改此选项?我的iPhone完全设置为一种语言环境:为德语设置键盘,语言和日历。 – Dopamine 2010-10-11 10:16:03

+1

@多巴胺:你可能不想。只需使用当前区域设置打印日期。 '[someObject description]'通常是向用户显示的不好的选择,因为Apple可能会在不通知的情况下对其进行更改,通常用于调试。 – 2010-10-11 11:08:05

+1

@Dopamine:如果您真的想要回答您在评论中发布的问题,我建议您创建一个新问题,具体询问如何将日期解释为GMT + 0。 – 2010-10-11 19:05:18

1

你没有失去1天,但2个小时。但显示格林威治标准时间。 你想和约会做什么? 查看reference更改输出格式化程序