使用 Shell 命令转换 Unix 时间戳和日期 date 命令
于 09/04/艾因·凡尔纳| 看法
程序中经常会用到Unix和日期转换。 通常使用时间戳转换的网页进行转换。 其实Linux命令中有一些命令可以快速实现转换。 主要关注日期命令。 date命令主要用于显示或设置系统时间和日期。
修改系统时区
Linux用于修正系统时区
sudo dpkg-reconfigure tzdata
选择亚洲 >
常用的获取当前Unix日期的date命令
date +%s # 返回 10 位时间戳,%s 表示从 1970-01-01 0 点 (epoch 开始的秒数)
date +%s%3N # 返回 13 位时间戳,毫秒
date +%s%N # 返回 10 + 9 位纳秒
将时间戳转换为日期
$ date +%s
1504516338
$ date -d @1504516338
Mon Sep 4 17:12:18 CST 2017
将日期转换为日期
使用 -d 参数将输入转换为特定的日期格式。 如果不指定具体时间,日期将使用 00:00:00
$ date -d "06/04/1989"
Sun Jun 4 00:00:00 CDT 1989 1559192456
$ date -d "04 June 1989"
Sun Jun 4 00:00:00 CDT 1989
$ date -d "June 04 1989"
Sun Jun 4 00:00:00 CDT 1989
$ date -d "June 04 1989 12:01:01"
Sun Jun 4 12:01:01 CDT 1989
-d选项还有一些其他非常强大的功能,比如
$ date -d '5 minutes ago' # 5 分钟前的时间
Mon Sep 4 17:22:58 CST 2017
$ date -d '100 days' # 100 天以后的日期
Wed Dec 13 17:29:14 CST 2017
$ date -d '-100 days' # 100 天以前的日子
Sat May 27 17:30:01 CST 2017
$ date -d '100 days ago' # 同上
Sat May 27 17:31:10 CST 2017
$ date -d 'next monday'
Mon Sep 11 00:00:00 CST 2017
或者 -d 选项也可以有这样的语法
date -d@1559192456
格式参数
可以使用+来输出不同的格式
date +%
例如
$ date '+%Y-%m-%d %H:%M:%S'
2017-09-04 17:38:46
的
日期+%a
以缩写形式显示星期几(如周一、周二、周三)
星期四
日期+%A
全名显示星期几(例如 , )
日期+%b
月份缩写名称(例如 Jan、Feb、Mar)
二月
日期+%B
月份名称的缩写(如 , )
日期+%d
一个月中的哪一天(例如 01)
07
日期+%D
日期; 以月/日/年显示
2013年2月7日
日期+%F
日期; 以 YYYY-MM-DD 显示