加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – NSDate休息5个小时

发布时间:2020-12-16 10:30:03 所属栏目:百科 来源:网络整理
导读:我运行以下代码: NSDate * now = [NSDate date]; NSLog(@"now: %@",now); 得到: 2011-09-16 16:14:16.434 iSavemore [1229:7907]现在:2011-09-16 21:14:16 0000 你可以看到我在16:14:16(下午4:14)运行这个,但NSDate正在返回21:16:16(晚上9:14!).这是X
我运行以下代码:

NSDate * now = [NSDate date];

NSLog(@"now: %@",now);

得到:

2011-09-16 16:14:16.434 iSavemore [1229:7907]现在:2011-09-16 21:14:16 0000

你可以看到我在16:14:16(下午4:14)运行这个,但NSDate正在返回21:16:16(晚上9:14!).这是Xcode4问题还是NSDate问题?

解决方法

NSDate默认为通用时区(也称为GMT).

我猜你在东海岸的某个地方,比UTC晚了5个小时.

尝试将此添加到您的日期格式化程序…

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];

[dateFormatter setLocale:[NSLocale currentLocale]];

……你应该看看你当地的时间.

如果要使用指定的区域设置而不是“currentLocale”,请为相关区域设置创建NSLocale.

NSLocale *usLoc = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

[dateFormatter setLocale:usLoc];

……实际上那是美国(很可能不是中环).

可以在这里找到更具体的时区帮助……

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

但是,如果您想显示到期时间,您是否仍然希望它在用户的currentLocale中?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读