Iphone NSString到NSDate的转换问题

Iphone NSString到NSDate的转换问题,iphone,nsdate,Iphone,Nsdate,我有一个NSString对象,我正在NSDateFormatter的帮助下将其转换为NSDate。现在,代码在所有操作系统中都可以正常工作,但它在客户端add(美国地区)创建了不同的输出。 这是我正在使用的代码 NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease]; [formate setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *strConcat = @

我有一个NSString对象,我正在NSDateFormatter的帮助下将其转换为NSDate。现在,代码在所有操作系统中都可以正常工作,但它在客户端add(美国地区)创建了不同的输出。 这是我正在使用的代码

NSDateFormatter *formate = [[[NSDateFormatter alloc] init] autorelease];
[formate setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *strConcat = @"2010-09-24 17:30:00";
NSDate *date = [formate dateFromString:strConcat];
NSLog(@"Output :%@",date);
我这边的输出----2010-09-24 17:30:00-0700 客户端输出----2010-09-25 00:30:00GMT 谁能告诉我哪里出了问题

谢谢
Pratik Goswami

您需要手动设置
NSDateFormatter
的区域设置,以便所有用户都能看到相同的格式化字符串。否则,格式化程序将使用为设备设置的任何语言环境。

实际上,它工作正常。这两个日期是相等的,只是一个在美国/山区时区,另一个在格林威治时区。(下午5:30+7小时=上午12:30)


这里有什么问题?

我注意到的唯一输出差异是时间不同。如果未明确设置格式化程序的
时区
属性,它将使用系统的本地时区。如果您希望您和您的客户的时间完全相同:

[formate setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

这将确保输出始终为GMT。在iOS2.x和3.x中,description/datefromstring函数返回: 2010-09-2417:30:00-0700

在iOS 4.x中,它返回以下内容: 2010-09-25 00:30:00GMT

你可以向苹果提交一个bug