<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 閱讀(7673) 評論(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










    小白
    主站蜘蛛池模板: 全部免费国产潢色一级| 日韩免费无砖专区2020狼| 亚洲国产一区二区三区| 日韩在线视精品在亚洲| 国产精品极品美女免费观看 | 久久亚洲日韩精品一区二区三区 | 亚洲日韩中文字幕天堂不卡| 亚洲人成网男女大片在线播放| 日本亚洲高清乱码中文在线观看| 精品久久久久久久免费人妻| 亚洲成AV人片在线观看无码 | 亚洲国产成人无码av在线播放| 99ee6热久久免费精品6| 亚洲精品亚洲人成在线麻豆| 男人的好免费观看在线视频| 在线精品亚洲一区二区小说| 亚洲人成在线免费观看| 啦啦啦中文在线观看电视剧免费版| 亚洲男人的天堂久久精品| 免费中文字幕不卡视频| 亚洲国产亚洲综合在线尤物| 最近2019中文字幕mv免费看 | 色婷婷7777免费视频在线观看| 久久精品国产亚洲AV久| 亚洲免费无码在线| 大陆一级毛片免费视频观看i| 亚洲精品精华液一区二区| 色欲国产麻豆一精品一AV一免费 | 亚洲精品国产综合久久久久紧| xvideos亚洲永久网址| a级黄色毛片免费播放视频| 亚洲精品91在线| 国产无遮挡又黄又爽免费视频| 国产真人无码作爱免费视频| 亚洲综合色丁香麻豆| 又粗又大又硬又爽的免费视频| 久久久国产精品无码免费专区| 亚洲爆乳成av人在线视菜奈实| 亚洲精品无码mv在线观看网站| 一道本不卡免费视频| 免费乱理伦在线播放|