我需要以跨平台(Windows 和各种风格的 Unix)的方式在 Perl 中获取当前时区的 UTC 偏移量。它应该符合这种格式:
zzzzzz, which represents ±hh:mm in relation to UTC
看起来我应该可以通过 strftime()
获得它,但它似乎不一致。
Unix:
Input: perl -MPOSIX -e "print strftime(\"%z\", localtime());"
Output: -0700
window :
Input: perl -MPOSIX -e "print strftime(\"%z\", localtime());"
Output: Mountain Standard Time
虽然 Unix 似乎给了我我想要的东西(或者至少是接近的东西),但 Windows 却没有。我很确定我可以使用 Date::Time
或类似的东西来做到这一点,但我真的希望没有任何依赖项,由于我们的广泛安装,我无法保证用户将拥有基地。
我在这里遗漏了一些明显的东西吗?提前致谢。
最佳答案
Time::Local
应该可以解决问题
use Time::Local;
@t = localtime(time);
$gmt_offset_in_seconds = timegm(@t) - timelocal(@t);
https://stackoverflow.com/questions/2143528/
相关文章:
java - 是否有可用的 Java 库完全支持 Excel 的格式字符串?
c++ - 输出带有数字分组的数字(1000000 为 1,000,000 等等)
python - 如何在没有任何额外符号(方括号 [] 和元素之间的空格)的情况下打印 Numpy
visual-studio-2008 - 如何添加法国商标符号 (MD)?
python - 我怎样才能产生一个很好的 numpy 矩阵输出?
c# - 在 C# 中将 Excel 范围作为文本数组或单元格格式的快速方法?
xml - 选择性地关闭 XML 文件的 Eclipse 格式