0%

Linux shell系统时间

Linux shell 获取更改系统时间

date命令可以用来打印显示亦或者更改日期和时间。

看看官方的定义如下:

date - print or set the system date and time

用法如下:

1
2
$ date [OPTION]... [+FORMAT]
$ date [-u | --utc| --universal] [MMDDhhmm[[CC]YY][.ss]]

较常用的OPTION为:

  • -R : 显示时区
  • -u, --utc, --universal:打印或者设置世界协调时
  • -d, --date=STRING:显示STRING的时间

默认输入

date 命令默认情况下为CST时区,

1
2
$ date
Mon Jun 5 15:11:44 CST 2014

显示时区

如果加上 -R参数就可以带上时区,比如我们的东八区

1
2
$ date -R
Mon, 05 Jun 2014 15:15:25 +0800

世界协调时

选项-u, --utc, --universal可以显示世界协调时

1
2
3
4
5
6
7
8
$ date -u
Mon Jun 5 07:15:46 UTC 2014

$ date --utc
Mon Jun 5 07:15:48 UTC 2014

$ date --universal
Mon Jun 5 07:15:55 UTC 2014

格式化日期

可以通过不同的参数来格式化日期,这里需要注意的是:不同的大小写代表的是不同的含义

比较常用的日期和时间如下:

1
2
3
4
5
6
7
8
# 显示年月日时分秒
$ date +%Y-%m-%dT%H:%M:%S
2013-01-17T18:01:08

# 或者 下面一样的效果

$ data +%FT%T
2013-01-17T18:02:12

这里注意到有+这个选项,后面的就是格式字符串,常见常用的有下面几个。

格式化参数 含义
%a 星期的缩写,比如Sun
%A 星期的全称,比如Sunday
%b 月份的缩写,比如Jan
%B 月份的全称,比如January
%c 日期和时间,比如Thu Mar 3 23:05:25 2005
%d 日期,比如02
%D 日期,格式为月/日/年,比如:01/17/13,即为2013年1月17日
%F 日期的全写,格式为年-月-日,比如2013-01-17
%H 小时,从00到23,24小时制
%I 小时,从01到12,12小时制
%j 一年中的第几天,从001到366
%m 月份,比如:01
%M 分钟,比如56
%N 纳秒,范围为:(000000000..999999999)
%p 使用AM或PM
%P 使用am或pm
%q 显示季度(范围1到4)
%r 12进制显示,比如:10:23:51 PM
%R 24进制显示时分,类似于%H:%M
%s 自UTC1970-01-01 00:00:00以来的秒数
%S 秒,比如28
%T 显示时间,格式为:%H:%M:%S
%u 一周的第几天,从1到7
%U 一年的第几周,周日为第一天,范围00到53
%V 与%U类似,使用Monday作为第一天,范围01到53
%w 星期,如果结果显示0,则表示周日
%W 一年的第几周,周一为第一天,范围00到53
%x 本地日期,格式mm/dd/yy
%X 本地时间,格式hh:mm:ss
%Y 以四位数字格式打印年份 ,比如 2014
%y 以二位数字格式打印年份 ,比如14
%z 数字时区,格式为+hhmm
%Z 字母时区,比如EDT、CST

还有一些可选的参数,比如:^,使用方法为date +%^b,此时的输出改为大写,如果date +%b输出为Jan,那么加上^的输出为JAN

转换秒到日期时间

下面的方法为将UTC 1970-01-01 00:00:00经过123456789秒以后的日期时间显示出来。

1
2
$ date --date='@123456789'
Fri Nov 30 05:33:09 CST 1973

–date选项花样多

-d, --date=STRING能描述和使用的STRING很多很复杂,比如可以这么用:

1
2
3
4
5
6
7
8
9
$ date --date="next Week"

$ date --date="next Month"

$ date --date="1 year ago"

$ date --date="4 days"

$ date --date="4 days ago"

还有很多其他的用法,可以参考info date

炫技汇总实例

下面这个命令基本就能得到所有的信息了

1
2
3
$ date +%Y年%m月%d日%H时%M分%S秒第%j日%q季度第%U周周%A时区%Z

2014年05月06日13时13分14秒第126日2季度第18周周Tuesday时区CST
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道