首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iPhone NSTimeZone: localTimeZone困惑

iPhone NSTimeZone: localTimeZone困惑
EN

Stack Overflow用户
提问于 2009-11-15 05:34:12
回答 2查看 2.2K关注 0票数 2

据我所知,打电话

代码语言:javascript
运行
复制
NSLog(@"Local Time Zone %@",[[NSTimeZone localTimeZone] name]);

提供设备的本地时区。它给我的是"US/Central",在NSTimeZone abbreviationDictionary中的缩写列表中,或者在NSTimeZone knownTimeZoneNames中的时区名称列表中都找不到。这个是从哪里来的?我需要将当前设备时区传递给Rails应用程序,它可以理解像"Australia/Sydney""America/Chicago",之类的东西,而不是"US/Central".。

如何将localTimeZone提供给我的内容转换为Rails可以理解的字符串(即knownTimeZoneNames中的任何时区,即假定的是系统所知道的所有时区名称)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-17 10:30:00

您可能使用ActiveSupport::TimeWithZone而不需要tzinfo gem:

代码语言:javascript
运行
复制
$ irb -rrubygems -ractivesupport -rtzinfo
>> Time.send(:get_zone, "US/Central").now
=> Tue, 17 Nov 2009 04:27:23 CST -06:00

如果您不需要tzinfo,您将只得到一个时区子集,这是相当无用的。

编辑:为了避免混淆,我使用私有Time#get_zone API的原因是,在调用Time#zone=时在幕后使用它。如果不需要tzinfo,则调用Time.send(:get_zone, "US/Central")返回nil

票数 5
EN

Stack Overflow用户

发布于 2009-11-15 15:38:22

你是从模拟器里得到的吗?如果是这样的话,如果您从终端运行这个命令,它会返回什么?

$ systemsetup -gettimezone

MacOS10.5中的时区设置GUI将将时区设置为US/*。如果从控制台手动设置它,则可以将其设置为预期的时区之一。

运行以下命令以获得有效的列表,并注意到US/Central不在其中。

$ systemsetup -listtimezones

运行这个设置到美国/芝加哥

$ systemsetup -settimezone美国/芝加哥

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

https://stackoverflow.com/questions/1736699

复制
相关文章

相似问题

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