【发布时间】:2011-06-07 09:48:03
【问题描述】:
如何使用在美国服务器上执行的 PERL 脚本确定各个国家/地区的当前日期和时间?例如,getDTnow() 应该确定服务器上的当前日期和时间,并使用它来返回各个国家的日期和时间。
P.S:如果只使用内置函数而不需要任何外部模块,那就太好了。
结论:日期数学[在这里使用脏话]复杂且容易出错。 IRC、团体和网络其他部分的其他 perl 专家证实了 Ether 一直在建议我 - 使用 DateTime。 DVK 的解决方案对于那些不介意弄乱 perl 环境的人来说也非常简洁。 (注意:虽然在 Windows 上,Time::Piece docs 的警告部分说在“在 Win32 上的线程中设置 $ENV{TZ}”时应该小心。
【问题讨论】:
-
关于“没有任何外部模块”——你需要阅读"But I can't use CPAN!"
-
@Ether:感谢您的链接。这是一本有趣的书。我不想使用任何模块,因为我正在学习 perl。如果一个内置函数可以完成简单的任务,为什么要导入一个 perl 模块,它可以做很多我的脚本永远不会使用的其他事情? (我们不要忘记 TIMTOWTDI :)。
-
时间计算不简单,因为有很多边缘情况。如果有一个模块已经为您完成了所有边缘情况的调试和实现,您应该使用它,而不是尝试重新发明轮子。您可以随时打开引擎盖了解它是如何做到的——代码随时可供检查。
-
学习 Perl 的一部分就是学习 CPAN。
标签: perl timezone gmt localtime