成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Perl語言中處理Perl日期時間的技巧

開發 架構
本文向大家簡單介紹一下處理Perl日期時間的技巧,Perl語言中表現日期的方法多種多樣,這里和大家分享一下,希望本文的介紹能讓你有所收獲。

本文和大家重點討論一下處理Perl日期時間的技巧,這里主要從兩個方面來向大家介紹,相信通過本文的學習你對Perl日期時間的處理方法有一定的認識。

處理Perl日期時間的技巧

Perl日期時間中表現日期的方法多種多樣:

“18 Jan 1973″ ,”18/01/1973″ ,”01/18/1973″ ,”Jan 18 1973″ ,”18-01-73″ ,”18-01-1973″ ,”01/73″,其中一些格局含義不清(如”01-06-1973″是表現6月1日呢,還是表現1月6日呢?) 假如不規定日期的表現情勢,是很難處理的。

想懂得”18 Jan 1973″和”6 Sep 1950″之間的差別,需要把它們轉換為數字表現。Unix 內部應用紀元秒表現時間。日期和時間加起來表現之自格林威志時間1970年1月1日午夜時分(紀元)到當前時刻之間的秒數。”18 Jan 1973″ (假定為午夜時分) 的紀元秒為96163200。在該系統中,午夜表現一天的開端時刻。

讓我們天生一個日期通過Perl中供給的gmtime函數,你可以自己來驗證這點。給定一個用以表現自從紀元以來的秒數的整數,通過gmtime函數可以盤算出代表相應的日期和時刻,例如:
perl -le ‘print scalar gmtime 96163200′
Thu Jan 18 00:00:00 1973
調用 gmtime() 函數,你會得到一系列值的列表,包含時,分,秒, 日期,月份,年份等等。
perl -le ‘print join(”,”, gmtime 96163200)’
0,0,0,18,0,73,4,17,0
前面3個0分辨表現秒,分,時。小時是從0-23,故下午是12時往后。第4個數表現該月中的天數(本例中為18號)。第5個數表現月份,從0開端(代表1月份)。之所以從0開端,是由于月份對應著月份數組的下標:
@months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); $month = (gmtime 96163200)[4]; # “Jan”

◆年份 (本例中為73)的表現有點特別它并不是年份的***兩位數字。它表現從1900年開端的年份。為什么要這樣表現呢?這是由于 C語言就是這樣處理的。Perl試圖使得其庫和系統調用盡量接近把持系統的處理方法。
所以,假如你想輸出4位數的年份,表現如下:
$year = (gmtime 96163200)[5] + 1900;
假如你不懂得這種處理方法,就會制作出Y2K標題,你也許會這樣寫:
$year = “19″ . (gmtime 96163200)[5];
# 出錯! 2000年將變為19100

對于gmtime()函數的返回值還沒有先容完,還有4, 17, 和 0這3個數。它們分辨表現一星期中的第幾天 (星期日為0),一年中的第幾天(0 表現一年中的***天), 以及是否采用夏時制(表現不采用,正數表現采用,負數表現不可知)。
Perl中的time() 函數返回以紀元秒情勢表現確當前日期和時間。假如你打算把它轉換為字符串,就可應用gmtime() 和localtime() 函數:
$now = localtime(time());
($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst) = localtime(time());
假如調用 localtime() 或gmtime() 時不帶參數,它將自己調用time()
$now = localtime();
($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst) = localtime();

Perl日期時間中常見的日期和時間把持

◆假如你打算盤算兩個時刻之間的時間段,只需將它們轉換為相應的紀元秒,然后兩數相減即可:
$difference_in_seconds = $later_datetime -$earlier_datetime;

要把秒轉換為分,時,或天數,只需要分辨將它們除以60, 3600 和 86400 即可:
$difference_in_minutes = $difference_in_seconds / 60;
$difference_in_hours = $difference_in_seconds / 3600;
$difference_in_day = $difference_in_seconds / 86400;

反過來做,你也可以答復如下標題:”4天后是幾號?”:
$then = time() + 86400 * 4;
print scalar localtime $then;
它給出的答案準確到秒。例如,假如4天后的紀元秒值為932836935, 你可以輸出日期的字符串如下;
Sat Jul 24 11:23:17 1999

◆假如你打算輸出那個日期的午夜時分 (如”Sat Jul 24 00:00:00 1999″) 應用如下模塊:$then = $then - $then % 86400;      # 往掉那個日期的尾巴
類似地,你可以用四舍五進法,輸出最靠近午夜時分的日期:
$then += 43200; # add on half a day
$then = $then - $then % 86400;# truncate to the day

◆假如你的時區間隔GMT為相差偶數個小時,這就管用了。并不是所有的時區都是很輕易處理的。你所真正需要的是在你自己的時區內盤算紀元秒,而不是在GMT中盤算。
Perl 中的名為Time::Local的模塊,可以供給兩個函數 timelocal() 和timegm()。其返回值同 localtime() 和gmtime() 一樣。
 

  1. use Time::Local;  
  2. $then = time() + 4*86400;  
  3. $then = timegm localtime $then;  
  4. # local epoch seconds  
  5. $then -= $then % 86400;  
  6. # truncate to the day  
  7. $then = timelocal gmtime $then;  
  8. # back to gmt epoch seconds  
  9. print scalar localtime $then, “\n”;  

 

【編輯推薦】

  1. 解析兩大Perl時間函數區別
  2. 暢談Perl時間處理函數用法
  3. 解析Perl時間和日期模塊作用
  4. Perl基礎 Perl數組學習指南
  5. Perl基礎 解析Perl標量和數組概念
責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-21 09:50:51

Perl調試

2010-07-19 10:01:57

Perl函數

2010-07-20 10:23:24

Perl類

2010-07-19 09:16:47

Perl包

2010-07-20 10:02:15

Perl類

2010-07-13 15:34:09

Perl語言

2010-07-26 16:23:23

Perl語言

2010-07-20 11:37:00

Perl函數返回值

2010-07-23 13:23:10

Perl語言

2010-07-13 09:14:21

Perl時間處理函數

2010-07-15 14:17:15

2010-07-13 10:05:54

Perl語言

2010-07-15 09:56:58

Perl語言

2010-07-23 13:07:39

Perl

2010-07-23 13:46:27

Perl語言

2010-07-13 16:20:21

Perl 哈希表

2010-07-19 09:45:09

Perl數組

2022-02-22 19:04:01

Perl編程語言

2010-07-26 16:35:34

Perl性能

2010-07-13 12:50:47

Perl變量
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级黄色片在线看 | 国产精品久久久乱弄 | 日韩一级一区 | 国产最好的av国产大片 | 日韩欧美三区 | 精区3d动漫一品二品精区 | 久久一区二区三区四区五区 | 久草资源在线视频 | 国产福利在线 | 18成人在线观看 | 精品二区视频 | 我爱操 | 中文字幕一区二区三区四区五区 | 国产农村妇女精品一二区 | 一区二区三区免费网站 | 亚洲成人综合网站 | 国产激情一区二区三区 | 天天爽一爽 | 黑人精品 | 亚洲高清视频在线观看 | 黄色毛片视频 | 日韩av大片免费看 | 成人精品一区亚洲午夜久久久 | 精品一区二区视频 | 国产91亚洲精品一区二区三区 | 亚洲精品久久久久avwww潮水 | 黄色一级视频免费 | 久久久久国产精品午夜一区 | 两性午夜视频 | 中文字幕免费 | 久久久99精品免费观看 | a级在线观看 | 亚洲精品久久久久久国产精华液 | 草草视频在线观看 | 欧美久久一区二区三区 | 一级黄色录像毛片 | 国产在线一区二区 | 欧美v片 | 欧美日韩精品影院 | 久久国产精品无码网站 | 97成人精品 |