首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NSDateFormatter和时区问题?

NSDateFormatter和时区问题?
EN

Stack Overflow用户
提问于 2011-12-09 16:08:32
回答 1查看 33.6K关注 0票数 19

我有一个字符串的时间在格林尼治标准时间,我想让它根据系统时区,但它不能正常工作-

代码语言:javascript
复制
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。另外,当我从这个日期获取一个字符串时,它显示了我用来制作日期的相同的字符串,我希望字符串根据系统时区进行更新。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-09 16:16:31

如果日期字符串是格林尼治标准时间,则不能使用系统时区从NSString创建NSDate。

替换第一个出现的[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];

使用[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8442706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档