shell常用时间戳的获取和转换时间

1、获取当前日期+时间

要获取当前日期+时间,返回如1970-01-01 00:00:00则使用如下代码:

currentTime =`date "+%Y-%m-%d %H:%M:%S"`

输出2019-04-29 09:49:48
也可以使用简写:

currentTime =`date "+%F %T"`

格式可以根据需要修改,如只获取日期:

currentTime =`date "+%Y-%m-%d"`

只获取时间:

currentTime =`date "+%H:%M:%S"`

2、获取1970-01-01 00:00:00到当前时间的秒数

获取当前时间的秒数如1556503057

cur_sec=`date '+%s'`

输出:1556503057

3、获取1970-01-01 00:00:00到当前时间的纳秒

cur_ns=`date '+%N'`

输出:903987355

4、获取当前时间的纳秒级时间戳

cur_timestamp=$((`date '+%s'`*1000+`date '+%N'`/1000000))

输出:1556503676106

5、获取某个时间的秒数

date -d "2010-10-18 00:00:00" +%s

输出:1287331200

6、将时间戳转换为时间

date -d @1287331200

输出:Mon Oct 18 00:00:00 CST 2010
如果想将其转换为形如2010-10-18 00:00:00的格式则使用如下方式:

date -d "1970-01-01 UTC 1287331200 seconds" "+%F %T"

7、format格式说明表如下

格式说明
%%%的转义
%a当地星期几的缩写,例如Sun、日
%A当地星期几的全称,例如Sunday、星期二
%b当地月份的缩写,例如Jan、12月
%B当地月份的全称,例如January、十二月
%c当地日期和时间,例如Thu Mar 3 23:05:25 2005,2018年12月18日 星期二 15时46分23秒
%C输出世纪,例如现在是2
%d当前月份的第几天,例如18(2018-12-18)
%D日期,格式与%m%d%y,年为两位数,例如12/18/18
%e当前月份的第几天,例如08(2018-12-08)
%F完整格式的日期,与%Y-%m-%d相同,例如2018-12-18
%g年份中的后两位数,例如18
%G
%h与%b一样
%H小时(00…23),即24小时制
%I小时(01…12),即12小时制
%j一年中的第几天(001…366)
%k小时(1…23)
%l小时(1…12)
%m月份(01…12)
%M分钟(01…59)
%n新行
%N纳秒(000000000…999999999)
%p当地上午或下午,例如PM、下午
%P当地上午或下午(小写),例如pm、下午
%q第几季度(1…4)
%r当地12小时制的时间格式,例如下午 04时06分24秒
%R24小时制的时分(%H:%M),例如16:07
%s从1970-01-01 00:00:00 UTC到现在的秒数
%S当前分钟的秒数(00…59)
%T等价%H:%M:%S,时分秒
%u从星期一开始数,一周中的第几天(1…7)
%U从星期日开始数,一年中的第几周(00…53)
%VISO周数,从周一开始数(01…53)
%w从周日开始数,一周中的第几天(0…6)
%W从星期一开始数,一年中的第几周(00…53)
%x当地日期,例如2018年12月18日
%X当地时间,例如16时16分17秒
%y年份的后两位数(00…99)
%Y年份
%z时区,+hhmm,例如东八区+0800
%?时区,+hh::mm,例如东八区+08:00
%:?时区,+hh::mm:ss,例如东八区+08:00:00
%Z时区的缩写,例如东八区CST
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值