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