1、格林威治时间就是时间协调时间(GMT=UTC),格林威治时间和UTC时间均用秒数来计算的。
2、date命令可以借助于-u参数来查看UTC或者GMT时间 。
❷ date的linux命令
名称 : date
使用权限 : 所有使用者
使用方式 :
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明 :
date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
时间方面 :
% : 印出 %
%n : 下一行
%t : 跳格
%H :小时(0..23)
%I : 小时(01..12)
%k : 小时(0..23)
%M : 分钟(0..59)
%p : 显示本地时段“上午”或 “下午”
%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 : 星期几 (Mon..Sun)
%A : 星期几 (Monday..Sunday)
%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)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
把计 :
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号
例子 :
显示时间后跳行,再显示目前日期 :
date +%T%n%D
显示月份与日数 :
date +%B %d
显示日期与设定时间(12:34:56) :
date --date 12:34:56
注意 :
当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。
当你以 root 身份更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
❸ Linux下的date命令究竟可以干什么
因为有个Bash脚本,想根据用户给的日期参数(yyyymmdd格式),得到这个日期的前一天的表示。首先想到的就是date命令,网上搜了一大把,其实多数都是互相抄的,date基本用法原本就会,不能用来解决我的问题。
先说不用date命令的方法:
不嫌麻烦就多用几个判断,解决每月开头、每年开头减去一天的问题,最麻烦的是倒推到上个月最后一天,这一天究竟是28、29还是30、31,还得写个函数。
再说date的基本用法:
date +%Y%m%d 这是格式化输出,其他语言多数叫做strftime()
date -d "2 days ago" +%s -d可以输入一个日期,不过大多是相对于现在时间,+%s是输出时间戳。
date -d "2010-12-06" +%F -d可以接受ISO格式yyyy-mm-ddTHH:MM:SSZ,也可以接受日期的一些英文格式(月份英文缩写) %F就是%Y%m%d
接着搜到的我不知道的格式用法,当然对我的问题没有帮助:
格式字符中加-可以去掉前面的0,加_把前面的0变成一个空格,举例:date +%-Y%-m%-d 是 2010-12-6 (6前面的0去掉了) date +%_Y%_m%_d 是 2010-12- 6 (6前面有一个空格)
最后是谜底,date可以接受的特殊-d参数:
date -d "1970-01-01 UTC 1291622912 seconds" +%s 在前面的日期上面加上这么多秒作为输入。在我的脚本中这么用的:
❹ Linux怎样修改系统时间
使用“date -s”命令来修改系统时间
比如将系统时间设定成2007年8月1日的命令如下。
[root@localhost root]# date -s 08/01/2005
将系统时间设定成下午5点10分0秒的命令如下。
[root@localhost root]# date -s 17:10:00
这里说的是系统时间,是linux由操作系统维护的。
在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。
如果要确保修改生效可以执行如下命令。
[root@localhost root]# clock -w
或者
[root@localhost root]# hwclock
这个命令强制把系统时间写入CMOS。
***************************************************************************
Linux时钟的分类
Windows时钟大家可能十分熟悉了,Linux时钟在概念上类似Windows时钟显示当前系统时间,但在时钟分类和设置上却和Windows大相径庭。和Windows不同的是,Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。
既然Linux有两个时钟系统,那么大家所使用的Linux默认使用哪种时钟系统呢?会不回出现两种系统时钟冲突的情况呢?这些疑问和担心不无道理。首先,Linux并没有默认哪个时钟系统。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。
从Linux启动过程来看,系统时钟和硬件时钟不会发生冲突,但Linux中的所有命令(包括函数)都是采用的系统时钟设置。不仅如此,系统时钟和硬件时钟还可以采用异步方式,见图1所示,即系统时间和硬件时间可以不同。这样做的好处对于普通用户意义不大,但对于Linux网络管理员却有很大的用处。例如,要将一个很大的网络中(跨越若干时区)的服务器同步,假如位于美国纽约的Linux服务器和北京的Linux服务器,其中一台服务器无须改变硬件时钟而只需临时设置一个系统时间,如要将北京服务器上的时间设置为纽约时间,两台服务器完成文件的同步后,再与原来的时钟同步一下即可。这样系统和硬件时钟就提供了更为灵活的操作。
设置Linux的时钟
在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。由于目前绝大多数用户使用x86硬件体系,所以可以视这两个命令为一个命令来学习。
1.在虚拟终端中使用date命令来查看和设置系统时间
查看系统时钟的操作:
# date
设置系统时钟的操作:
# date 091713272003.30
通用的设置格式:
# date 月日时分年.秒
2.使用hwclock或clock命令查看和设置硬件时钟
查看硬件时钟的操作:
# hwclock --show 或
# clock --show
2003年09月17日 星期三 13时24分11秒 -0.482735 seconds
设置硬件时钟的操作:
# hwclock --set --date="09/17/2003 13:26:00"
或者
# clock --set --date="09/17/2003 13:26:00"
通用的设置格式:hwclock/clock --set --date=“月/日/年 时:分:秒”。
3.同步系统时钟和硬件时钟
Linux系统(笔者使用的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。如果不大方便重新启动的话(服务器通常很少重启),使用clock或hwclock命令来同步系统时钟和硬件时钟。
硬件时钟与系统时钟同步:
# hwclock --hctosys
或者
# clock --hctosys
上面命令中,--hctosys表示Hardware Clock to SYStem clock。
系统时钟和硬件时钟同步:
# hwclock --systohc
或者
# clock --systohc
❺ Linux date 显示设置时间命令学习
概要:
date命令的功能是显示和设置系统日期和时间
命令格式:
date
[OPTION]...
[+FORMAT]
date
[-u|--utc|--universal]
[MMDDhhmm[[CC]YY][.ss]]
参数:
-d
STRING:显示由
STRING
描述的日期
-s
STRING:
设置由
STRING
描述的日期
%Y
年(例如:1970,2009等)
%y
年的最后两个数字(1988则是88)
%m
月(01..12)
%d
一个月的第几天(01..31)
%H
小时(00..23)
%I
小时(01..12)
%k
小时(0..23)
%l
小时(1..12)
%p
显示出AM或PM
%M
分(00..59)
%S
秒(00..59)
%r
时间(hh:mm:ss
AM或PM),12小时
%T
时间(24小时制)(hh:mm:ss)
%X
显示时间的格式(%H:%M:%S)
%x
显示日期的格式(mm/dd/yy)
%D
日期(mm/dd/yy)
%s
从1970年1月1日00:00:00到目前经历的秒数
常用的就这些,剩下的直接查man就好了...
例子:
1、今天中午有个时间很特别,2009-08
07
12:34:56,用下面这个格式就可以显示出12/34/56/7/8/9这种格式。其中"-"可以忽略首位的"0"。
date
+'%I/%M/%S/%-d/%-m/%-y'
2、设置年月日为20090807,时间为00:00
date
-s
20090807
3、设置时间,不改变日期
date
-s
16:02:23
4、设置日期及时间
date
-s
"20090807
16:02:23"
5、查看100天又5小时前的具体时间
date
-d
"-1
day
5
hour"
+"%Y-%m-%d
%H:%M:%S"
6、查看100分钟后的时间
date
-d
"+100
min"
+"%Y-%m-%d
%H:%M:%S"
7、计算时间戳
date
-d
20090528
+%s
8、还原时间戳
date
-d
"1970-01-01
1243440000
sec
GMT"
+"%F
%T"
9、利用NTP协议在线更新系统时间
ntpdate
210.72.145.44
❻ Linux里面date -d命令作用是什么
date -d 的一下常用示例与说明:
date -d ‘2 days ago’ //显示2天以前的时间
date -d ‘60 second ago’ //显示60秒以前的时间
date -d '3 months 1 day' //显示3月零1天以后的时间
date -d '25 Dec' +%j //显示12月25日在当年的哪一天
date -d '1970-01-01 00:00:30 +0000' +%s //自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
❼ linux 怎么用命令查看日期
date命令用于显示及设置系统的时间或日期,格式为:"date [选项] [+指定的格式]"。
强大的date命令只需键入以"+"号开头的参数即可按照指定格式来输出系统的时间或日期,这样日常工作时咱们便可以将打包数据的备份命令与指定格式输出的时间信息结合到一起,使得咱们可以更加便捷的区分每个文件的备份时间啦,date命令常见的格式如下:
参数 作用
%t 跳格[TAB键]
%H 小时(00-23)
%I 小时(01-12)
%M 分钟(00-59)
%S 秒(00-60)
%X 相当于%H:%M:%S
%Z 显示时区
%p 显示本地AM或PM
%A 星期几 (Sunday-Saturday)
%a 星期几 (Sun-Sat)
%B 完整月份 (January-December)
%b 缩写月份 (Jan-Dec)
%d 日(01-31)
%j 一年中的第几天(001-366)
%m 月份(01-12)
%Y 完整的年份
按照默认的格式查看当前的系统时间:
[root@linuxprobe ~]# date
Mon Aug 24 16:11:23 CST 2016
按照"年-月-日 小时:分钟:秒"的格式查看当前的系统时间:
[root@linuxprobe ~]# date "+%Y-%m-%d %H:%M:%S"
2016-08-24 16:29:12
设置当前的系统时间为2016年9月1日8点30分:
[root@linuxprobe ~]# date -s "20160901 8:30:00"
Tue Sep 1 08:30:00 CST 2016
再次按照默认的格式查看当前的系统时间:
[root@linuxprobe ~]# date
Tue Sep 1 08:30:01 CST 2016
查看今天是一年中的第几天:
[root@linuxprobe ~]# date "+%j"
245
reboot命令用于重启系统,格式为:"reboot"。
重启计算机这种操作会涉及到对硬件资源的管理权限,因此默认只能使用root用户来重启您的电脑:
[root@linuxprobe ~]# reboot
poweroff命令用于关闭系统,格式为:"poweroff"。
关机命令也同理,默认只有root用户才可以关闭您的电脑:
[root@linuxprobe ~]# poweroff
如果你对Linux感兴趣的话,可以看看http://www.linuxprobe.com/chapter-02.html,非常适合初学者学习。
❽ 如何使用命令行更改Linux系统的日期和时间
方法一: Date 命令
在 Linux 中, 你可以通过 date 命令来更改系统的日期和时间:
# date --set=‘NEW_DATE’
其中 NEW_DATE 是诸如 “Sun, 28 Sep 2014 16:21:42” 或者 “2014-09-29 16:21:42” 的可读格式的日期字符串。
日期格式也可以手动指定以获得更精确的结果:
# date +FORMAT --set=‘NEW_DATE’
例如:
# date +’%Y%m%d %H%m’ --set=‘20140928 1518’
你也可以用相对的方式地增加或减少一定的天数,周数,月数和秒数,分钟数,小时数。 你也可以把日期和时间的参数放到一个命令中。
# date --set=‘+5 minutes’# date --set=‘-2 weeks’# date --set=‘+3 months’# date --set=‘-3 months +2 weeks -5 minutes’
最后, 把硬件时钟设置为当前系统时钟:
# hwclock --systohc
运行 hwclock --systohc 的目的是将硬件时钟同软件时钟同步, 这可以更正硬件时钟的系统漂移(即时钟按照一定的速度走快或走慢)。
另一方面, 如果硬件时钟是正确的, 但系统时钟有误, 可以用下面的命令更正:
# hwclock --hctosys
在两种情况下, hwclock 命令都是将两个时钟同步。 否则, 重启后时间会是错误的, 因为当电源关闭时硬件时钟会记忆时间。 然而, 这对于虚拟机器并不适用, 因为虚拟机器并不能访问硬件时钟。
方法二: NTP
另一种使系统日期和时间保持精确的方法是使用 NTP (网络时间协议)。 在 Linux 上, ntpdate 命令通过 NTP 将系统时钟和公共 NTP 服务器同步。
你可以使用如下命令来安装 ntpdate:
在 Debian 及基于 Debian 的发行版上:
# aptitude install ntpdate
在基于 Ret Hat 的发行版上:
# yum install ntpdate
使用 NTP 同步系统时钟:
# ntpdate -u 《NTP 服务器名或IP》# hwclock --systohc
除了一次性使用 ntpdate 来同步时钟, 你也可以使用 NTP 守护进程(ntpd), 它会始终在后台运行, 不断地通过 NTP 来调整系统时钟。
❾ Linux里面date -d命令作用是
date命令
date命令的功能是显示和设置系统日期和时间。
该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)
date 设置时间格式
命令中各选项的含义分别为:
-d datestr, --date datestr 显示由datestr描述的日期
-s datestr, --set datestr 设置datestr 描述的日期
-u, --universal 显示或设置通用时间
❿ Linux里面date -s命令作用是什么
修改linux的时间
root使用date指令:date -s
1、只修改日期,不修改时间,输入:
Linux代码
1. date -s 2007-08-03
date -s 2007-08-03
2、只修改时间,输入:
Linux代码
1. date -s 14:15:00
date -s 14:15:00
3、同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:
Linux代码
1. date -s "2007-08-03 14:15:00"
date -s "2007-08-03 14:15:00"