NSString到NSDate转换问题

问题描述:

我有一个NSString对象,我正在NSDateFormatter的帮助下转换到NSDate。现在,代码在所有操作系统中都能正常工作,但它在客户端的add(USA区域)上创建了不同的输出。 这是我使用的代码。NSString到NSDate转换问题

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:00 GMT 任何人都可以请建议问题在哪里?

感谢 PRATIK哥斯瓦米

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

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

这将确保输出总是GMT。

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

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

这里有什么问题?

在iOS2.x和3.x描述/ datefromstring函数返回: 2010-09-24 17时30分零零秒 - 0700

在IOS 4.x的

它返回这个: 2010-09- 25 00:30:00 GMT

您可以提交一个bug给苹果。