NSdate假设时区错误

时间:2012-02-25 07:17:45

标签: iphone nsdate

我正在尝试将以下字符串转换为NSDate对象:

NSString *str=@"25 May 2012 10:25:00";

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"d MMM yyyy HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"asia/kolkata"]];
 NSDate *date = [dateFormatter dateFromString:str];


In console : date-->2012-05-25 04:55:00 +0000....it lags behind 5 hours and 30 minutes and assumes GMT timezone instead of Asia...Why it is so?

2 个答案:

答案 0 :(得分:4)

当您在控制台中看到[NSDate说明]时,它始终是GMT中的相应时间。如果您使用相同的日期格式化程序将日期转换回字符串,则它应该在指定的时区。

如果您键入

,您会看到[NSDate说明]
po date

po [date description]

或者您使用NSLog将其中一个表单发送到控制台。

答案 1 :(得分:-1)

如果您正在寻找印度时区,您应该使用: enter image description here