Perl 獲取當前系統時間


perl有兩個取得時間的函數:localtime和gmtime

轉發用於記載,方便以后使用.原鏈接:https://www.cnblogs.com/hjj404/p/7992254.html,謝謝作者分享

兩個函數的用法一樣,區別在於localtime為取得本地時間, gmtime格林威治時間。

(\(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],要將\)mon加1之后,才能符合實際情況。

  • \(year從1900年算起的年數,所以要獲得當前年就需要在\)year的基礎上加上1900

  • $wday從星期六算起,代表是在這周中的第幾天[0-6]

  • $yday從一月一日算起,代表是在這年中的第幾天[0,364]

  • $isdst只是一個flag

下面是一個獲取當前系統時間的子函數:


sub getTime

{

   #time()函數返回從1970年1月1日起累計秒數

    my $time = shift || time();

   
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time);

   
    $mon ++;

    $sec  = ($sec<10)?"0$sec":$sec;#秒數[0,59]

    $min  = ($min<10)?"0$min":$min;#分數[0,59]

    $hour = ($hour<10)?"0$hour":$hour;#小時數[0,23]

    $mday = ($mday<10)?"0$mday":$mday;#這個月的第幾天[1,31]

    $mon  = ($mon<9)?"0".($mon+1):$mon;#月數[0,11],要將$mon加1之后,才能符合實際情況。

    $year+=1900;#從1900年算起的年數

    #$wday從星期六算起,代表是在這周中的第幾天[0-6]

    #$yday從一月一日算起,代表是在這年中的第幾天[0,364]

    #$isdst只是一個flag

    my $weekday = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday];

    return { 'second' => $sec,

             'minute' => $min,

             'hour'   => $hour,

             'day'    => $mday,

             'month'  => $mon,

             'year'   => $year,

             'weekNo' => $wday,

             'wday'   => $weekday,

             'yday'   => $yday,

             'date'   => "$year$mon$mday"

          };

}

通過下面的方法調用:

my $date = &getTime();#獲取當前系統時間的Hash

my $ymd = $date->{date};#獲取yyyymmdd這樣的日期

my \(year=\)date->{year};#獲取年

my \(month=\)date->{month};#獲取月

my \(day=\)date->{day};#獲取日

獲取時分秒類似。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM