Perl时区转换—但仅使用核心模块



是否有可能在将来使用Perl核心模块为'任意'日期进行时区转换?

假设我在时区X(假设它是一个完全限定的时区,如America/New_York)中有Day:month:year, hr:min,我需要将其转换为时区Y(例如Asia/Kolkata)

一些注意事项:

1)这适用于OSX (Lion或以上版本)

2)我知道如何使用DateTime和DateManip,但这些不是核心模块,需要一个C编译器来安装。我试图将我的程序分发给"非技术"用户-他们可以在帮助下安装perl模块,但在试图获得XCode,命令行工具等工作时崩溃。有些人试图安装DateTime,但他们遇到了错误/依赖项并放弃了。

3)我尝试使用tzset的组合;和ENV TZ -但不能用于任意日期-仅适用于本地时间(这意味着,我可以将'now time'转换为任何时区)

使用POSIX核心模块。例子:

use POSIX;
$ENV{TZ} = 'Europe/Madrid';
$time_t = POSIX::mktime( 10, 30, 17, 4, 4, 113 );
print POSIX::ctime($time_t); #<-- prints: Sat May  4 17:30:10 2013
$ENV{TZ} = 'Europe/London';
print POSIX::ctime($time_t); #<-- prints: Sat May  4 16:30:10 2013

相关内容

  • 没有找到相关文章