我有一台运行 iOS 3.1.3 的 iPod touch(第二代)(因为它在 iOS 4 上运行不佳),当我将其连接到计算机时,时钟设置总是比实际时间提前一小时。
当我通过 SSH 连接到设备时:
date "+%Z"
返回ARST
的是正确的(我在阿根廷布宜诺斯艾利斯)date "+%z"
结果是-0200
,即错误的并且应该是-0300
我的问题是:如何将时区偏移修正为实际值?
我发现了对“IANA 时区数据库”的提及和引用zic
。 我试图找到已经编译的文件来替换整个“zoneinfo”文件夹,但我找到的下载似乎使用了与 iPod 上不同的文件夹结构。zdump
编辑:我正在寻找一种编辑或更新时区信息的方法,以便正确配置我的时区“ARST”。我发现了几个对名为 的编译器的引用zic
。和
都存在于设备上,这让我相信它可以通过 SSH 和 UNIX 命令来完成。zic
zdump
答案1
我找到了解决方案这里。
但是,tzdata 源已更改其 URI。现在可以在以下位置找到它:ftp://ftp.iana.org/tz/或者http://www.iana.org/time-zones了解更多信息。
在本例中,下载更新的 tzdata 文件,
tzdata2012j.tar.gz
并将其解压到临时文件夹中。通过 SSH 连接到 iPod 并将解压的文件复制到 iPod。我选择
User/Downloads
并创建了一个新的(临时)文件夹tzfix
,将所有内容复制到其中。之后,使用命令进行编译:
zic southamerica
,这需要几秒钟。然后,使用以下命令复制该文件:
cp /usr/share/zoneinfo/America/Argentina/Buenos_Aires /usr/share/zoneinfo/America/Buenos_Aires
现在测试
date "+%z"
并date "+%Z"
返回正确的值:-0300
并且ART
最后!我可以将时钟设置为正确的时间,而不会 Twitter 拒绝登录并且 Google 身份验证器抛出错误的身份验证代码。
编辑:目前还有另一个单独的数据库需要更新:ICU 数据库。它使用相同的 tzdata 并且需要编译成/usr/share/icu/icudt40l.dat.
这是必要的,以便时钟和日历应用程序显示正确的时间。