我有一个带有 GMT 时间的字符串,我想根据系统时区制作它,但它不能正常工作 -
I have a string with time in GMT and i want to make it according to the system time zone but its not working properly -
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]);
控制台输出 -
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
时间 Str = 09-12-2011 07:57 AM
Time Str = 09-12-2011 07:57 AM
系统时区 = 亚洲/加尔各答 (IST) 偏移量 19800
system time zone = Asia/Calcutta (IST) offset 19800
字符串中的日期 = 2011-12-09 02:27:00 +0000
date from string = 2011-12-09 02:27:00 +0000
日期字符串 = 09-12-2011 07:57 AM
string from date = 09-12-2011 07:57 AM
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////
加尔各答距格林威治标准时间 +5:30,因此日期时间应为 1:27,但显示为 02:27.此外,当我从该日期获取一个字符串时,它向我显示了我用来制作日期的相同字符串,我希望根据系统时区更新字符串.
Calcutta is +5:30 from GMT, so the time in date should be 1:27 but its showing 02:27. Also when i take a string from this date its showing me the same sting that i used to make date, i want the string updated according system time zone.
谢谢
如果日期字符串是 GMT,则不能使用系统时区从 NSString 创建 NSDate.
If the date string is in GMT you can't use your system Timezone to create the NSDate from the NSString.
替换第一次出现的[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
with [dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
这篇关于NSDateFormatter 和时区问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!