将NSString转换为NSDate。失去1天

时间:2010-10-11 09:37:15

标签: 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 dateFromString:dateString]);

我的输出是:

2010-10-19 22:00:00 GMT

为什么有一天会失去?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

你没有失去1天,但是2小时。但显示器是GMT。 你想和约会做什么? 请参阅reference以更改输出格式化程序