我试图使用strftime获取perl中的当前时间,但它并没有以我想要的形式给我时区。根据这个:http://search.cpan.org/~dexter/POSIX-strftime-GNU-0.02/lib/POSIX/strftime/GNU.pm,%z用于表格" -0700",我看到了%:z给出形式" -07:00"这将是理想的。
但是%z给了我时区名称,而%:z甚至不起作用。
use POSIX qw/strftime/;
#This prints "2014-09-30T12:54:11-Pacific Daylight Time"
print strftime("%Y-%m-%dT%H:%M:%S-%z\n", localtime(time));
#This doesn't print anything
print strftime("%Y-%m-%dT%H:%M:%S-%:z\n", localtime(time));
#What I want: "2014-09-30T12:54:11-07:00"
答案 0 :(得分:1)
POSIX :: strftime使用您的操作系统底层strftime
库。因此,您可以使用的选项列在您的本地联机帮助页中。正如POSIX documentation所说:
有关这些和的详细信息,请参阅系统的strftime()联机帮助页 其他论点。
可能" man strftime"。
我正在使用Ubuntu 14.04,我得到了预期的结果。
$ perl -MPOSIX=strftime -E'say strftime("%z", localtime)'
+0100
您需要仔细查看strftime
的本地实施。