<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    持之以恒

    記錄本
    posts - 4, comments - 32, trackbacks - 0, articles - 74
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    perl的時間處理之localtime和strftime

    Posted on 2012-03-28 15:09 小白19870626 閱讀(7674) 評論(0)  編輯  收藏 所屬分類: linux

    大家都是使用的 localtime 來取得當地日期時間和日期。這個函數如果在標量環境時,會以字符串的形式來傳回目前的時間和日期 。默認的 localtime 的函數是以 1970 到今天的秒來做整數計算的。默認這個程序會調用 time 的函數來給它提供一個值。
    使用方法:

    例如,print scalar (localtime)這個代碼,它輸出的結果將類似于Thu Sep 16 23:00:06 1999。在列表上下文中,localtime將返回能夠描述當前時間的一個元素列表:
    (
    $sec,$min,$hour,$mday,$mon,$year_off,$wday,$yday,$isdat) = localtime;
    字段 值
    $sec 秒,0 ~ 59
    $min 分,0 ~ 59
    $hour 時,0 ~ 23
    $mday 月份中的日期, 1 ~ 2 8、2 9、3 0或3 1
    $mon 年份中的月份, 0 ~ 11(這里請特別要小心)
    $year_off 1900年以來的年份。將1900加上這個數字,得出正確的4位數年份
    $wday 星期幾,0 ~ 6
    $yday 一年中的第幾天,0 ~ 364或365
    $isdst 如果夏令時有效,則為真
    不要將19附加給localtime返回的年份。它返回的年份是1900的偏移量。比如,在1999年,年份是99;在2000年中,它是100,將 1999與該值相加,可以在2000年以后正確地產生年份。perl不存在2000年問題,但是,如果簡單地將19(或20)附加給該年份,就會導致程序中產生2000年問題

    真正的年月日 就是: $year_off + 1900 , $mon+1,$mday

    上面這個函數常用,但是返回值非常亂,可讀性非常不好,讓我們很容易出錯,所以我推薦 strftime 這個時間函數。當然,還有另一個模塊 DataTime 也相當不錯。不過 strftime 非常象 Linux 常用的 date 的命令。strftime 是 C 中 POSIX 的一個功能函數。被包含進了 Perl 中。好象 PHP 也是支持的

    使用起來很容易,如下:

    #!/usr/bin/perl
    use strict;
    use warnings;
    use POSIX qw(strftime);
    print strftime("%Y-%m-%d %H:%M:%S\n", localtime(time));

    會輸出
    2010-08-21 07:44:24

    Strftime 時間域 :( 這個和 date 的命令的字符格式是一樣的)
    % H 小時(00..23)
    % I 小時(01..12)
    % k 小時(0..23)
    % l 小時(1..12)
    % M 分(00..59)
    % p 顯示出AM或PM
    % r 時間(hh:mm:ss AM或PM),12小時
    % s 從1970年1月1日00:00:00到目前經歷的秒數
    % S 秒(00..59)
    % T 時間(24小時制)(hh:mm:ss)
    % X 顯示時間的格式(%H:%M:%S)
    % Z 時區 日期域
    % a 星期幾的簡稱( Sun..Sat)
    % A 星期幾的全稱( Sunday..Saturday)
    % b 月的簡稱(Jan..Dec)
    % B 月的全稱(January..December)
    % c 日期和時間( Mon Nov 8 14:12:46 CST 1999)
    % d 一個月的第幾天(01..31)
    % D 日期(mm/dd/yy)
    % h 和%b選項相同
    % j 一年的第幾天(001..366)
    % m 月(01..12)
    % w 一個星期的第幾天(0代表星期天)
    % W 一年的第幾個星期(00..53,星期一為第一天)
    % x 顯示日期的格式(mm/dd/yy)
    % y 年的最后兩個數字( 1999則是99)
    % Y 年(例如:1970,1996等)

    常用的實例

    得到日期的全部

    perl -MPOSIX -le 'print strftime "%c", localtime();'

    Sat 21 Aug 2010 07:54:34 AM CST

    得到普通的指定的日期

    perl -MPOSIX -le 'print strftime "%a %d %b %Y %H:%M:%S %Z", localtime();'

    Sat 21 Aug 2010 07:54:11 CST

    得到一個小時以前的時間

    perl -MPOSIX -le 'print strftime "%c", localtime(time()-3600);'

    Sat 21 Aug 2010 06:55:54 AM CST

    得到一天前的時間

    perl -MPOSIX -le 'print strftime "%c", localtime(time()-86400);'

    Fri 20 Aug 2010 07:56:36 AM CST










    小白
    主站蜘蛛池模板: 国产美女精品视频免费观看 | 妞干网手机免费视频| 亚洲精品成人av在线| 免费播放在线日本感人片| 亚洲精品无码av人在线观看| 人妻免费久久久久久久了| 亚洲中文无韩国r级电影| 国产精品内射视频免费| 亚洲乱码一区二区三区在线观看| 成人无码区免费A∨直播| 久久亚洲精品成人777大小说| 久久er国产精品免费观看2| 亚洲人成网址在线观看| www视频在线观看免费| 亚洲乱码一二三四区乱码| 日韩免费毛片视频| 免费毛片毛片网址| 亚洲精品无码永久在线观看你懂的| 国产午夜精品免费一区二区三区 | 亚洲老妈激情一区二区三区| 国精产品一区一区三区免费视频| 亚洲AV日韩AV永久无码绿巨人 | 亚洲冬月枫中文字幕在线看| 嫩草影院在线免费观看| 一级一黄在线观看视频免费| 国产精一品亚洲二区在线播放| 午夜无码A级毛片免费视频| 亚洲午夜精品国产电影在线观看| 日韩人妻无码免费视频一区二区三区| 一级毛片在线免费视频| 久久av无码专区亚洲av桃花岛| 永久免费视频v片www| 国产一级一毛免费黄片| 亚洲女人初试黑人巨高清| 深夜国产福利99亚洲视频| 久久青草精品38国产免费| 久久亚洲精品高潮综合色a片| 情人伊人久久综合亚洲| 国产精品无码免费播放| 中文字幕无线码中文字幕免费 | 亚洲国产精品成人精品小说|