我有一个包含GMT时间的字符串,我想将它转换为系统时区的时间,但是转换结果不正确 -
NSLog(@"Time Str = %@",Time);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd-MM-yyyy hh:mm a"];
[NSTimeZone resetSystemTimeZone];
NSLog(@"system time zone = %@",[NSTimeZone systemTimeZone]);
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *date = [dateFormat dateFromString:Time];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
NSLog(@"date from string = %@",date);
NSLog(@"string from date = %@",[dateFormat stringFromDate:date]);
在控制台输出 -
////////////////////////////////////////////////////////////////////////////////////////////////
时间字符串 = 09-12-2011 07:57 AM
系统时区 = Asia/Calcutta (IST),偏移量为19800
从字符串获取的日期 = 2011-12-09 02:27:00 +0000
从日期获取的字符串 = 09-12-2011 07:57 AM
////////////////////////////////////////////////////////////////////////////////////////////////
加尔各答比格林尼治标准时间快5小时30分钟,所以日期中的时间应该是1:27,但实际显示的是02:27。当我从这个日期中取一个字符串时,它显示的是我用来制作日期的同样的字符串,我希望根据系统时区更新字符串。
谢谢