【发布时间】:2013-05-04 14:42:15
【问题描述】:
是否可以仅使用 Perl 核心模块为将来的“任意”日期进行时区转换?
假设我在时区 X 中有 Day:month:year, hr:min(假设它是一个完全合格的时区,如 America/New_York),我需要将其转换为时区 Y(比如 Asia/Kolkata)
一些注意事项:
1) 这适用于 OSX(Lion 或更高版本)
2) 我知道如何使用 DateTime 和 DateManip,但这些不是核心模块,需要安装 C 编译器。我正在尝试将我的程序分发给“非技术”用户——他们可以在帮助下安装 perl 模块,但在尝试让 XCode、命令行工具等工作时崩溃了。有些人试图安装 DateTime 但他们陷入了错误/依赖关系并放弃了。
3) 我尝试使用 tzset 的组合;和 ENV TZ - 但不能用于任意日期 - 仅适用于当地时间(这意味着,我可以将“现在时间”转换为任何时区)
【问题讨论】:
-
分发你的程序,所有依赖项都已经编译 → PAR::Packer 或其他。这样,您也可以使用最新的 perl。但从长远来看,自动化或以其他方式简化编译器安装会更好。
-
我了解 OP 的问题。在 OS X 上安装 Xcode(下载 >1GB)只是因为“需要编译一个 perl 模块”不是最佳解决方案。你知道任何好的手册(带有示例和“足够深入”的解释)如何分发带有预编译模块和/或(嵌入 perl)的 perl 应用程序吗?这也让我很感兴趣 :)
-
另外,一般要小心未来的日期。时区规则随政客的心血来潮而变化。 :)
-
@amon 谢谢。我发现 PAR::Packer 偶尔会出现问题 - 它有时不包含 all 依赖项,我需要做很多实验。