推荐答案
在 Perl 中,localtime
和 gmtime
函数用于将时间戳转换为本地时间和格林尼治标准时间(GMT)。它们返回一个包含时间信息的列表。
localtime
用法
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
$sec
: 秒 (0-59)$min
: 分钟 (0-59)$hour
: 小时 (0-23)$mday
: 月份中的第几天 (1-31)$mon
: 月份 (0-11, 0 表示一月)$year
: 年份 (从 1900 年开始的年份数)$wday
: 星期几 (0-6, 0 表示星期日)$yday
: 一年中的第几天 (0-365)$isdst
: 是否夏令时 (1 表示是,0 表示否)
gmtime
用法
my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime(time);
- 返回的列表与
localtime
相同,但时间是基于格林尼治标准时间(GMT)。
本题详细解读
localtime
和 gmtime
的区别
localtime
返回的时间是基于当前时区的本地时间。gmtime
返回的时间是基于格林尼治标准时间(GMT),不考虑时区。
示例代码
-- -------------------- ---- ------- --- ------- --- --------- - ------- -- ---------- - ----- - -- --------- ------ -- ------ ----- ------ ------ ----- ------ ------ ------ ------- - ---------------------- ----- ------ ---------------- --- -------- ---- - -- ---- ----- - ----- ----- - -- ------ -- --- -- ------ ----- ------ ------ ----- ------ ------ ------ ------- - ------------------- ----- ---- --- ---------------- --- -------- ---- - -- ---- ----- - ----- -----
注意事项
localtime
和gmtime
返回的月份和年份需要调整:- 月份需要加 1 才能得到实际的月份(因为返回的月份是从 0 开始的)。
- 年份需要加 1900 才能得到实际的年份(因为返回的年份是从 1900 年开始的)。
localtime
和gmtime
都可以接受一个可选的时间戳参数。如果不提供参数,默认使用当前时间。