如何通过 zic 时区编译器纠正错误的时区偏移

leu*_*gim 7 ssh ios timezone

我有一台运行 iOS 3.1.3 的 iPod touch(第 2 代)(因为它在 iOS 4 上性能不佳),并且当我将它连接到计算机时,时钟设置本身比实际时间提前一小时不断出现问题。

当我通过 SSH 连接到设备时:

  • date "+%Z"回报ARST正确的(我在布宜诺斯艾利斯,阿根廷)
  • date "+%z"结果是-0200,这是错误的,应该是-0300

我的问题是:如何将时区的偏移量更正为实际值?

我发现提到的ziczdump并引用了“IANA时区数据库”。
我试图找到已编译的文件以替换整个“zoneinfo”文件夹,但我找到的下载似乎使用了与 iPod 上不同的文件夹结构。

编辑:我正在寻找一种编辑或更新时区信息的方法,以便正确配置我的时区“ARST”。我发现了几个对名为zic.
这两个ziczdump存在的设备,我相信这会导致它可以通过SSH和UNIX命令来完成的。

leu*_*gim 7

我在这里找到了解决方案。

但是,tzdata 源已更改其 URI。现在可以在以下网址找到它:ftp : //ftp.iana.org/tz/http://www.iana.org/time-zones了解更多信息。

  1. 在这种情况下,下载更新的 tzdata 文件, tzdata2012j.tar.gz并将其解压缩到一个临时文件夹。

  2. 通过 SSH 连接到 iPod 并将提取的文件复制到 iPod。我选择User/Downloads并创建了一个新的(临时)文件夹tzfix,我将所有内容复制到其中。

  3. 之后,使用命令编译它:zic southamerica,这需要几秒钟。

  4. 然后,使用以下命令复制此文件:

    cp /usr/share/zoneinfo/America/Argentina/Buenos_Aires /usr/share/zoneinfo/America/Buenos_Aires

  5. 测试date "+%z"并且date "+%Z"都返回正确的值,现在:-0300ART

最后!我可以将时钟设置为正确的时间,而不会出现 Twitter 拒绝登录和 Google Authenticator 抛出错误验证码的情况。

编辑:当时还有另一个单独的数据库需要更新:ICU 数据库。它使用相同的 tzdata 并且需要编译成/usr/share/icu/icudt40l.dat.这是必要的,以便时钟和日历应用程序显示正确的时间。

  • 步骤 4 将 `America/Argentina/Buenos_Aires` 文件复制到 `America/` 目录中。(请注意,它不是`America/Argentina/`。) (2认同)