Perl的time、localtime和gmtime函数

  • time用于返回当前时间点,但返回结果是以从1970年1月1日(纪元由操作系统决定,但unix系统一般都是1970年1月1日)距离现在的秒数表示的
  • localtime用于返回给定时间的秒、分、时、日、月、周、年等9个部分的时间属性
  • gmtime和localtime类似,但是返回的UTC时间
print time,"\n";

localtime在列表上下文返回的是各个时间部分,在标量上下文返回的是一个本地格式的时间值。

[[email protected] perlapp]# perl -e '$a=localtime;print $a,"\n";'
Sat Sep  8 09:03:56 2018

以下是localtime在列表上下文返回的各个时间部分:

#  0    1    2     3     4    5     6     7     8
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

其中:

  • sec:秒
  • min:分
  • hour:时
  • mday:日,即当月的第几天
  • mon:月份,值为0-11,0表示1月,11表示12月,如此表示的好处后面解释
  • year:年,返回从1900年开始的整数值,如果要返回4位数的年份,将其加上1900即可
  • wday:周几,值为0-6,0是周日,1是周一,6是周六
  • yday:一年的第几天,值为0-364或0-365
  • isdst:是否是夏令时

例如:

use 5.010;

@time=localtime;

say qq(second  : $time[0]);
say qq(minute  : $time[1]);
say qq(hour    : $time[2]);
say qq(mon_day : $time[3]);
say qq(month   : $time[4]);
say qq(year    : $time[5]);
say qq(week_day: $time[6]);
say qq(year_day: $time[7]);
say qq(isdst   : $time[8]);

输出结果为:

second  : 42
minute  : 10
hour    : 9
mon_day : 8
month   : 8
year    : 118
week_day: 6
year_day: 250
isdst   : 0

之所以用0表示1月份,11表示12月份,是为了让月份数值和偏移对应。例如,偏移0位表示1月。

my @month = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
print "$month[$mon]"

原文地址:https://www.cnblogs.com/f-ck-need-u/p/9611098.html

时间: 2024-11-02 02:43:42

Perl的time、localtime和gmtime函数的相关文章

gmtime函数与localtime函数的区别:

gmtime函数与localtime函数的区别: gmtime函数返回的时间日期未经时区转换,是UTC时间(又称为世界时间,即格林尼治时间). localtime函数返回当前时区的时间, 转换日期时间表示形式time_t类型转换为struct tm类型示例: #include #include int main() { char *wday[]={"Sun","Mon","Tue","Wed","Thu",

localtime和gmtime

// temp10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include <stdio.h> #include <time.h> int _tmain(int argc, _TCHAR* argv[]) { //宇宙标准时间是格林威治时间. //为了适应地球上的个个地方人们的生活作息,人们发明了本地时间. //本地时间,是基于格林威治时间并根据太阳升落修正后

[ Perl 6 ] Haskell式的Fibonacci函数定义

[ Perl 6 ] Haskell式的Fibonacci函数定义 There is more than one way to do it. 在Perl 6中,总有超过一种方法来达到目的.例如我们可以使用函数重载功能,写出Haskell式的Fibonacci函数定义 -- Haskell ver. fib 0 = 1 fib 1 = 1 fib n = fib (n-1) + fib (n-2) # Perl 6 ver. multi fib (0) { 1 } multi fib (1) {

Perl文件测试操作和stat函数

在shell中通过test命令或者中括号[]可以进行文件测试以及其它类型的测试,例如判断文件是否存在,比较操作是否为真等等.perl作为更强大的文本处理语言,它也有文件测试类表达式,而且和shell的文件测试用的字母符号都类似. perl中测试文件的属性来源是perl的内置函数stat,它可以获得文件的13项属性.后文会介绍该函数. 测试符 测试符号都是短横线开头,加一个字母.例如,测试文件是否存在-e "a.log".在可能产生歧义的情况下,这些测试符可以用括号包围,例如:(-e &

Boost-date_time库学习

最近开了boost库的学习,就先从日期-时间库开始吧,boost的date_time库是一个很强大的时间库,用起来还是挺方便的. 以下代码只是入门级的简单学习,更详细的资料参考boost源码. C++ Code 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767

文档化说明的重要性

用通过下面的两个示例,来说明官方给出的文档化说明的重要性.一个是MSDN上给出的说明,一个是GDIView GDI泄漏检测工具官方给出的说明.以这些官方说明为线索,可以找到我们程序出问题的地方,进而将问题解决掉. 1.聊天服务器时间的本地时区和夏时令的问题 (1)TL的聊天时间使用服务器时间,TL底层的XMPP客户端需要和服务器时间进行同步,进而获取服务器时间,用于聊天信息的时间戳.服务器传递过来的是UTC+0的时间,是字符串格式的年月日时间,不是整数时间.XMPP客户端要使用时差bias.mk

perl学习之:localtime

Perl中localtime()函数以及sprintf (2011-4-25 19:39)localtime函数 localtime函数,根据它所在的上下文,可以用两种完全不同的方法来运行.在标量上下文中,localtime函数返回一个格式化很好的当前时间字符串.例如,print scalar (localtime)这个代码,它输出的结果将类似于Thu Sep 16 23:00:06 1999.在列表上下文中,localtime将返回能够描述当前时间的一个元素列表: ($sec,$min,$ho

请对 POSIX 风格和兼容 Perl 风格两种正则表达式的主要函数进行类比说明

POSIXF风格的正则表达式主要函数有ereg 函数:(正则表达式匹配).ereg_replace 函数:(正则表达式替换) Perl风格的正则表达式主要函数有preg_match 函数:(进行正则表达式匹配).preg_replace  函数:(执行正则表达式的搜索和替换)   1.匹配正则表达式对比 int ereg ( string $pattern , string $string [, array &$regs ] ) int preg_match ( string $pattern

perl学习之:函数总结

一.进程处理函数 1.进程启动函数 函数名 eval 调用语法 eval(string) 解说 将string看作Perl语句执行.正确执行后,系统变量[email protected]为空串,如果有错误,[email protected]中为错误信息. 例子 $print = "print (\"hello,world\\n\");";eval ($print); 结果输出 hello, world 函数名 system 调用语法 system(list) 解说