我想知道是否可以通过简单地使用POSIX获得时区缩写(例如:EST,CST,PST)?我可以使用POSIX获得完整的时区名称(例如:太平洋标准时间),代码如下:
use POSIX; print strftime("%Z",localtime()),"\n";
我知道有可用于日期/时间操作的模块,但由于我只需要获得时区缩写,我想避免使用大模块.
解决方法
时区数据库不是POSIX(或任何其他Unix)标准的一部分.要正确处理时区,您需要一个时区数据库,例如
Olson database.
在Perl中,您可以使用DateTime模块,它与DateTime::TimeZone模块一起使您可以访问该数据库.同样,使用此类数据库是正确处理时区的唯一方法.