Unix時間和時間戳的命令行怎么寫

這篇文章主要介紹“Unix時間和時間戳的命令行怎么寫”,在日常操作中,相信很多人在Unix時間和時間戳的命令行怎么寫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Unix時間和時間戳的命令行怎么寫”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),銅陵企業(yè)網(wǎng)站建設(shè),銅陵品牌網(wǎng)站建設(shè),網(wǎng)站定制,銅陵網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,銅陵網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

事情的由來是,在很長一段時間內(nèi),我在拿到一個時間戳并且想看看這個時間戳究竟是具體的哪一天哪一年甚至于哪一分哪一秒的時候(通常在程序出現(xiàn)問題需要定位和時間有關(guān)的bug的時候)。我都會習(xí)慣性的打開某搜索引擎然后輸入時間戳這個關(guān)鍵詞進行搜索,然后熟練的點擊搜索結(jié)果的第一條unix時間戳轉(zhuǎn)換工具,直到某一天我覺得要糾正掉這個不好的習(xí)慣,我才開始試著去使用date這個linux/unix系統(tǒng)標(biāo)配命令行工具去完成這個日常操作。哈哈,只能略表慚愧,我居然沒有把這個這么好用的網(wǎng)站給收藏到瀏覽器的頂部欄!

正題時間戳 -> 日期

和往常一樣,我在調(diào)試的過程中發(fā)現(xiàn)了一個可疑的時間戳,它的數(shù)值是1506787200,我需要知道這個時間戳是對應(yīng)的哪個具體日期,所以我又熟練的打開了某搜索引擎輸入了時間戳。

其實我這次是打開了mac系統(tǒng)終端(terminal),然后輸入了如下命令:

date -r 1506787200

這個命令以最快的速度也給予了我準(zhǔn)確的反饋輸出:

Unix時間和時間戳的命令行怎么寫

從這一刻起,我感覺我自己終于擺脫了我的壞習(xí)慣,所以我覺得有必要多操作幾次以達到強化的目的,于是我又熟練的依次輸入了如下的命令:

date -r 0
date -r 60
date -r 3600
date -r 43200
date -r 86400

這些命令如饑似渴的以最快的速度分別的給予了我準(zhǔn)確的反饋輸出:

Unix時間和時間戳的命令行怎么寫

從這一刻起,我感覺我自己已經(jīng)熟練掌握了date -r的奧義,就在我欣喜如狂之際,我的旁光突然掃描到date -r 0這個命令的輸出: 1970年 1月 1日 星期四 08時00分00秒 cst,為什么是早上8時,和我在前話中提到的0代表1970年1月1日0時0分0秒有些出入呢。

其實這是一個誤會,時間戳:0確實是代表1970年1月1日0時0分0秒,但是是代表零時區(qū)(utc+0)的1970年1月1日0時0分0秒,還好我也是學(xué)過地理的,知道我們偉大的祖國幅員遼闊,地大物博,光時區(qū)就橫跨了5個,而且全國統(tǒng)一使用首都北京所在時區(qū)東八區(qū)(utc+8)的時間。

因為我的電腦系統(tǒng)設(shè)置的時區(qū)是東八區(qū)的緣故,這個date命令在默認情況下也是根據(jù)系統(tǒng)的時區(qū)優(yōu)先顯示所在時區(qū)的換算后的本地時間。以至于出現(xiàn)剛才的情況,虛驚一場。

為了驗證剛才的推論,我打算重新操作一次,并且加上了一個神秘的參數(shù)-u,這個參數(shù)的作用很簡單,就是以零時區(qū)(utc+0)為標(biāo)準(zhǔn)輸出時間,輸入的命令如下:

date -u -r 0
date -u -r 60
date -u -r 3600
date -u -r 43200
date -u -r 86400

這些命令欣慰的以最快的速度分別的給予了我預(yù)料中的反饋輸出:

Unix時間和時間戳的命令行怎么寫

從這一刻起,雖然我感覺到我的功力再次上了一個臺階,但在這個時候我覺得我應(yīng)該稍微停頓一下我的腳步,來追憶一下往昔的時光。

于是我飛快的將這個熟悉又遙遠的日期輸入到命令中:

date -j 071303001998

命令給予了一個輸出:

1998年 7月13日 星期一 03時00分00秒 cst
#法蘭西世界杯決賽開始的北京時間

上面的命令中,我輸入的是date -j 071303001998,其中的-j參數(shù)代表的是不要將他后面的那個日期字符串設(shè)置為當(dāng)前系統(tǒng)時間,而只是將它以更友好的1998年 7月13日 星期一 03時00分00秒 cst這種形式輸出。簡單點說也就是如果我不加-j參數(shù),那么date 071303001998命令會直接把我的電腦系統(tǒng)的當(dāng)前時間設(shè)置為1998年那個夏天的7月13日凌晨3點,而不是在屏幕上輸出那個時間。

但是我提供的071303001998這個字符串其實就是月日時分年的格式,07是7月,13是13日,03是凌晨3點,00是0分,1998是什么還用說么,我知道準(zhǔn)確的日期,然后輸入到這個date -j 071303001998命令中,顯然不是為了讓它輸出告訴我1998年 7月13日 星期一 03時00分00秒 cst這個只是更好讀的同樣的日期,我是出于強烈的好奇想要知道這個偉大的時間的時間戳,所以我必須還要動點手腳:

date -j 071303001998 +%s

這次的命令只輸出了一個數(shù)字,這個數(shù)字就是我想知道的那個時間戳:

900270000

得到了時間戳,我又迫不及待的使用如下命令:

date -r 900270000

命令再一次的快速輸出了:

1998年 7月13日 星期一 03時00分00秒 cst

經(jīng)過這一些列的操作,我不光學(xué)習(xí)到了新的參數(shù)-j,還再次溫故了-r參數(shù)的用法,更重要的是我完成了對過往美好時光的追憶,可謂一石三鳥,大快人心。

格式化

前面的命令雖然用得很溜了,但是它們的輸出都略顯冗長,雖然很智能的根據(jù)我是中文用戶給予了中文輸出的最高待遇,但我覺得很普通~ 我現(xiàn)在迫切的希望改變它的輸出的格式以彰顯我獨特的個性與品味,于是我又開始了我的操作,我現(xiàn)在顯然還沉浸在剛在的追憶中,所以我還是打算用900270000這個代表1998年夏天的7月13日凌晨3點整的這個有特殊意義的時間戳來完成我的操作:

date -r 900270000 +%y

它給予了我一個簡單輸出作為回應(yīng):

1998

我有些小激動,仿佛找到一些竅門,繼續(xù)輸入:

date -r 900270000 +%m

它再次給予了我一個更簡潔的回應(yīng):

07

我更加激動,毫不猶豫的輸入:

date -r 900270000 +%d

它果然沒有讓我失望,給予了我預(yù)料中的回應(yīng):

13

經(jīng)過三次嘗試,我嘗到了成功的滋味,我覺得這個時候應(yīng)該乘勝追擊,于是我決定將%y,%m,%d放在一起,我的第六感告訴我,我會再次獲得成功:

date -r 900270000 +%y%m%d

結(jié)果顯而易見,年月日一起出現(xiàn)在了屏幕上:

19980713

我還不滿足,我想獲取更多的成就感,我想輸出的格式更加的國際化,我繼續(xù)嘗試:

date -r 900270000 +%m/%d/%y

結(jié)果達到我的初步要求:

07/13/1998

我依然不滿足,因為我想起了王菲和那英所唱的那首紅遍大江南北的歌曲《相約98》,我覺得我也要顯示98而不是1998,在那個年代,沒有人會說1998年,所以我再次摸索并嘗試:

date -r 900270000 +%m/%d/%y

大寫變小寫,腐朽化神奇:

07/13/98

我果然還是不滿足,心里想著如果能在后面附加上具體的時間那我應(yīng)該就會收手了,于是我又一氣呵成的輸入了如下命令:

date -r 900270000 +%m/%d/%y %h:%m:%s

心里想著就快完成這次愉快的操作之旅時,現(xiàn)實卻讓我嘗到了失敗的味道:

date: illegal time format

在最后關(guān)頭居然發(fā)生了意外著實讓我有些不太爽快,但是憑借我大學(xué)英語四級的扎實基礎(chǔ),我還是從報錯信息中領(lǐng)悟出了一些端倪,再結(jié)合我多年的工作經(jīng)驗,我感覺應(yīng)該是我新增加的那段為了輸出時分秒的格式字符串%h:%m:%s所造成的。我隱約感覺到應(yīng)該是它之前的那個空格導(dǎo)致了date命令在讀取的時候誤以為它們是兩個獨立的字符串。這種時候,按照慣例應(yīng)該需要用傳說中的雙引號""將它們包圍在一起,以表示它們是一個整體。于是我重新整理了命令:

date -r 900270000 "+%m/%d/%y %h:%m:%s"

這次終于可以收工了,完美的輸出,完美的夜晚,再也回去不的98:

07/13/98 03:00:00

做個總結(jié)常用命令行 date

默認格式輸出當(dāng)前日期。 date +%y%m%d%h%m%s

自定義格式%y%m%d%h%m%s輸出當(dāng)前日期 date -r 900270000

默認格式輸出時間戳:900270000對應(yīng)日期 date -r 900270000 +%y%m%d%h%m%s

自定義格式%y%m%d%h%m%s輸出時間戳:900270000對應(yīng)日期 date -j 071303001998

默認格式輸出日期字符串:071303001998對應(yīng)的日期 date -j 071303001998 +%y%m%d%h%m%s

自定義格式%y%m%d%h%m%s輸出日期字符串:071303001998對應(yīng)的日期 date -j 071303001998 +%s

自定義格式%s輸出日期字符串:071303001998對應(yīng)的日期的時間戳 格式字符串含義

注意大小寫代表完全不同的含義

%y : 年(year) %y : 年(year)后兩位 %m : 月(month) %d : 日(day) %h : 時(hour) %m : 分(minute) %s : 秒(second) %s : 時間戳(stamp) 日期字符串默認格式

月日時分年(07 13 03 00 1998)

那些逝去的時間戳900270000 1157040000 967737600 778348800 555087600 1430136000 1461758400 1493222400 1277913600

到此,關(guān)于“Unix時間和時間戳的命令行怎么寫”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

標(biāo)題名稱:Unix時間和時間戳的命令行怎么寫
當(dāng)前地址:http://bm7419.com/article36/jjsgsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站排名、ChatGPT外貿(mào)建站、移動網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作