歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux時間轉化date和unix時間

Linux時間轉化date和unix時間

日期:2017/2/27 15:55:25   编辑:Linux教程
時間相關參數列表
%H : 小時(00..23)
%I : 小時(01..12)
%k : 小時(0..23)
%l : 小時(1..12)
%M : 分鐘(00..59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式為 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數
%S : 秒(00..61)
%T : 直接顯示時間 (24 小時制)
%X : 相當於 %H:%M:%S
%Z : 顯示時區 %a : 星期幾 (Sun..Sat)
%A : 星期幾 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接顯示日期與時間
%d : 日 (01..31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w : 一周中的第幾天 (0..6)
%W : 一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最後兩位數字 (00.99)
%Y : 完整年份 (0000..9999)

Linux date命令轉換時間

  • date指定格式輸出
$ date +"%Y-%m-%d %H:%M:%S"
2014-11-21 23:59:37

將日期轉換為Unix時間戳

  • 當前時間轉換成unix時間戳:
$ date +%s

1361542433
  • 轉換指定日期為Unix時間戳:
$ date -d "2008-01-01 00:00:00" +%s
1199116800

$ date -d 2008-01-01 +%s
1199116800

$ date -d 20080101 +%s
1199116800

例外: 有一種場景date格式是連續的(沒找到date命令怎麼轉換成unix)

$ echo 20080101010101 | awk '{print substr($0,1,4)"-"substr($0,5,2)"-"substr($0,7,2)" "substr($0,9,2)":"substr($0,11,2)":"substr($0,13,2) }'

2008-01-01 01:01:01

$ date -d "2008-01-01 01:01:01" +%s
1199120461

將Unix時間戳轉換為日期時間

  • 指定輸出格式
$ date -d @1199116800 +"%Y-%m-%d %H:%M:%S"
2008-00-01 00:00:00
  • 當前時間轉換成指定格式
date -d @`date +%s` +"%Y-%m-%d %H:%M:%S"
等價於
date +"%Y-%m-%d %H:%M:%S"

日期格式之間轉換

$ date -d "2008-01-01 00:00:00" +%Y-%M-%d" "%H:%M:%S
2008-00-01 00:00:00

$ date -d "2008-01-01 00:00:00" +"%Y%M%d %H%M%S"
20080001 000000

$ date -d "2008-01-01 00:00:00" +"%Y/%M/%d %H:%M:%S"
2008/00/01 00:00:00

Python時間轉換

  • 獲取當前主機unix time
time.mktime(datetime.datetime.now().timetuple())
  • unix time轉datetime
datetime.datetime.fromtimestamp(int("1284101485")).strftime('%Y-%m-%d %H:%M:%S')
  • datetime轉unix time
time.mktime(datetime.datetime.strptime(time,"%Y-%m-%d %H:%M:%S").timetuple())
Copyright © Linux教程網 All Rights Reserved