好消息:胡歌网摘新面貌迎接2015~!

Linux时间转化实例大全date和unix时间

网络技术 胡歌 1179浏览 0评论

linux date时间相关参数列表:

%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())

转载请注明:胡歌网摘 » Linux时间转化实例大全date和unix时间

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址