解析兩大Perl時間函數(shù)區(qū)別
本文和大家重點討論一下Perl時間函數(shù)的概念,Perl語言中有兩個取得Perl時間函數(shù):localtime()和gmtime(),兩個函數(shù)的用法一樣,區(qū)別在于localtime為取得本地時間,gmtime格林威治時間。
Perl時間函數(shù)
Perl語言中有兩個取得Perl時間函數(shù):localtime()和gmtime()
兩個函數(shù)的用法一樣,區(qū)別在于localtime為取得本地時間,gmtime格林威治時間
#!/usr/bin/Perl
#getlocaltime
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
其中:
$sec代表秒數(shù)[0,59]
$min代表分?jǐn)?shù)[0,59]
$hour代表小時數(shù)[0,23]
$mday代表是在這個月的第幾天[1,31]
$mon代表月數(shù)[0,11],要將$mon加1之后,才能符合實際情況。
$year從1990年算起的年數(shù)
$wday從星期六算起,代表是在這周中的第幾天[0-6]
$yday從一月一日算起,代表是在這年中的第幾天[0,364]
$isdst只是一個flag
知道這些變量之后,就可以在CGI應(yīng)用程序中拿來應(yīng)用了。此外,Perl時間函數(shù)也可以用下面這一行指令在UNIX系統(tǒng)下取得系統(tǒng)的時間。為了避免錯誤發(fā)生,***用絕對路徑的方法來取得系統(tǒng)時間,如果絕對路徑不清楚的話可以用”whichdata”這個指令來得知。***要提字符的話,就不能正確執(zhí)行系統(tǒng)的程序了。$data=’/usr/bin/data’;而在Perl5版本中,也可以用下面這一行指令來取得系統(tǒng)時間
Perl時間函數(shù)的例子:
格式化所需要的時間變量:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
#2001年08月09日
$yyyymmddZH=sprintf("%04d年%02d月%02d日",$year+1900,$mon+1,$mday);
#2001年8月9日
$yyyymmddZH2=sprintf("%d年%d月%d日",$year+1900,$mon+1,$mday);
#2001.08.09
$yyyymmdd=sprintf("%04d.%02d.%02d",$year+1900,$mon+1,$mday);
#2001.08.09
$yyyymmdd2=sprintf("%d.%d.%d",$year+1900,$mon+1,$mday);
#13點13分02秒
$hhmmssZH=sprintf("%02d點%02d分%02d秒",$hour,$min,$sec);
#13點13分2秒
$hhmmssZH2=sprintf("%d點%d分%d秒",$hour,$min,$sec);
#13:13:02
$hhmmss=sprintf("%02d:%02d:%02d",$hour,$min,$sec);
#13:13:2
$hhmmss2=sprintf("%d:%d:%d",$hour,$min,$sec);
#周四
$weekZH=sprintf("%s",("周日","周一","周二","周三","周四","周五","周六")[$wday]);
#Thursday
$weekE=sprintf("%s",("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")[$wday]);
#Thu
$week=sprintf("%s",("Sun","Mon","Tue","Wed","Thu","Fri","Sat")[$wday]);
【編輯推薦】
- 解析Perl時間和日期模塊作用
- Perl文件句柄概念詳解
- 解析四大Perl操作符用法
- Perl字符串處理函數(shù)大全
- 學(xué)習(xí)筆記 Perl數(shù)字與字符串間的自動轉(zhuǎn)換