我有一个字符串的时间在格林尼治标准时间,我想让它根据系统时区,但它不能正常工作-
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
系统时区=亚洲/加尔各答(IST)偏移19800
date from string = 2011-12-09 02:27:00 +0000
字符串起始日期= 09-12-2011 07:57 AM
////////////////////////////////////////////////////////////////////////////////////////////////
加尔各答距离格林尼治标准时间+5:30,所以日期中的时间应该是1:27,但它显示为02:27。另外,当我从这个日期获取一个字符串时,它显示了我用来制作日期的相同的字符串,我希望字符串根据系统时区进行更新。
谢谢
发布于 2011-12-09 16:16:31
如果日期字符串是格林尼治标准时间,则不能使用系统时区从NSString创建NSDate。
替换第一个出现的[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
使用[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
https://stackoverflow.com/questions/8442706
复制相似问题