linux时间同步

linux时间同步
linux时间同步

linux时间同步,ntpd、ntpdate

LINUX 2010-10-13 09:01:02 阅读1043 评论0 字号:大中小订阅

在Windwos中,系统时间的设置很简单,界面操作,通俗易懂。而且设置后,重启,关机都没关系。系统时间会自动保存在Bios的时钟里面,启动计算机的时候,系统会自动在Bios里面取硬件时间,以保证时间的不间断。

但在Linux下,默认情况下,系统时间和硬件时间,并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的。

在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间。

一.Linux系统时间的设置

在Linux中设置系统时间,可以用date命令:

//查看时间

[root@localhost ~]# date

2008年12月12日星期五14:44:12 CST

//修改时间

[root@localhost ~]# date --set "1/1/09 00:01" <== (月/日/年时:分:秒)

2009年01月01日星期四00:01:00 CST

//date 有几种时间格式可接受,这样也可以设置时间:

[root@localhost ~]# date 012501012009.30 <== 月日时分年.秒

2009年01月25日星期日01:01:30 CST

二.Linux硬件时间的设置

硬件时间的设置,可以用hwclock或者clock命令。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。

//查看硬件时间可以是用hwclock,hwclock --show 或者hwclock -r

[root@localhost ~]# hwclock --show

2008年12月12日星期五06时52分07秒-0.376932 seconds

//设置硬件时间

[root@localhost ~]# hwclock --set --date="1/25/09 00:00" <== 月/日/年时:分:秒

[root@localhost ~]# hwclock

2009年01月25日星期日00时00分06秒-0.870868 seconds

三.系统时间和硬件时间的同步

同步系统时间和硬件时间,可以使用hwclock命令。

//以系统时间为基准,修改硬件时间

[root@localhost ~]# hwclock --systohc<== sys(系统时间)to(写到)hc(Hard Clock)

[root@localhost ~]# hwclock -w

//以硬件时间为基准,修改系统时间

[root@localhost ~]# hwclock --hctosys

[root@localhost ~]# hwclock -s

四.不同机器之间的时间同步

为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。一台机器,可以同时是ntp服务器和ntp客户机。在网络中,推荐使用像DNS服务器一样分层的时间服务器来同步时间。

同步时间,可以使用ntpdate命令,也可以使用ntpd服务。

使用ntpdate比较简单。格式如下:

[root@linux ~]# ntpdate [-nv] [NTP IP/hostname]

[root@linux ~]# ntpdate 192.168.0.2

[root@linux ~]# ntpdate https://www.360docs.net/doc/c58662590.html,

但这样的同步,只是强制性的将系统时间设置为ntp服务器时间。如果cpu tick有问题,只是治标不治本。所以,一般配合cron命令,来进行定期同步设置。比如,在crontab中添加:

0 12 * * * * /usr/sbin/ntpdate 192.168.0.1

这样,会在每天的12点整,同步一次时间。ntp服务器为192.168.0.1。

使用ntpd服务,要好于ntpdate加cron的组合。因为,ntpdate同步时间,会造成时间的跳跃,对一

些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同

步时间。

要注意的是,ntpd有一个自我保护设置: 如果本机与上源时间相差太大, ntpd不运行. 所以新设置的时

间服务器一定要先ntpdate从上源取得时间初值, 然后启动ntpd服务。ntpd服务运行后, 先是每64秒与

上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间, 随着误差减小, 逐

步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.

五.ntpd服务的设置

ntpd服务的相关设置文件如下:

1./etc/ntp.conf:这个是NTP daemon的主要设文件,也是NTP 唯一的设定文件。

2./usr /share/zoneinfo/:在这个目录下的文件其实是规定了各主要时区的时间设定文件,例如北京地区的时区设定文件在/usr/share/zoneinfo/Asia/Beijing 就是了。这个目录里面的文件与底下要谈的两个文件(clock 与localtime)是有关系的。

3./etc/sysconfig/clock:这个文件其实也不包含在NTP 的daemon 当中,因为这个是linux的主要时区设定文件。每次开机后,Linux 会自动的读取这个文件来设定自己系统所默认要显示的时间。

4./etc /localtime:这个文件就是“本地端的时间配置文件”。刚刚那个clock 文件里面规定了使用的时间设置文件(ZONE) 为/usr/share/zoneinfo/Asia/Beijing ,所以说,这就是本地端的时间了,此时,Linux系统就会将Beijing那个文件另存为一份/etc/localtime文件,所以未来我们的时间显示就会以Beijing那个时间设定文件为准。

5. /etc/timezone:系统时区文件

下面重点说说/etc/ntp.conf文件的设置。在NTP Server 的设定上面,其实最好不要对Internet 无限制的开放,尽量仅提供您自己内部的Client 端联机进行网络校时就好。此外,NTP Server 总也是需要网络上面较为准确的主机来自行更新自己的时间啊,所以在我们的NTP Server 上面也要找一部最靠近自己的Time Server 来进行自我校正。事实上,NTP 这个服务也是Server/Client 的一种模式。

[root@linux ~]# vi /etc/ntp.conf

# 1. 关于权限设定部分

#权限的设定主要以restrict 这个参数来设定,主要的语法为:

# restrict IP mask netmask_IP parameter

# 其中IP 可以是软件地址,也可以是default ,default 就类似0.0.0.0

#至于paramter则有:

#ignore:关闭所有的NTP 联机服务

#nomodify:表示Client 端不能更改Server 端的时间参数,不过,

#Client 端仍然可以透过Server 端来进行网络校时。

#notrust:该Client 除非通过认证,否则该Client 来源将被视为不信任网域

#noquery:不提供Client 端的时间查询

#notrap:不提供trap这个远程事件登入

#如果paramter完全没有设定,那就表示该IP (或网域)“没有任何限制”

restrict default nomodifynotrapnoquery# 关闭所有的NTP 要求封包

restrict 127.0.0.1#这是允许本级查询

restrict 192.168.0.1 mask 255.255.255.0 nomodify

#在192.168.0.1/24网段内的服务器就可以通过这台NTP Server进行时间同步了

# 2. 上层主机的设定

#要设定上层主机主要以server 这个参数来设定,语法为:

#server [IP|HOST Name] [prefer]

#Server 后面接的就是我们上层Time Server 啰!而如果Server 参数

#后面加上perfer的话,那表示我们的NTP 主机主要以该部主机来作为

#时间校正的对应。另外,为了解决更新时间封包的传送延迟动作,

#所以可以使用driftfile来规定我们的主机

#在与Time Server 沟通时所花费的时间,可以记录在driftfile

#后面接的文件内,例如下面的范例中,我们的NTP server 与

#https://www.360docs.net/doc/c58662590.html,联机时所花费的时间会记录在/etc/ntp/drift文件内

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html, prefer

#其他设置值,以系统默认值即可

server 127.127.1.0 # local clock

fudge 127.127.1.0 stratum 10

driftfile /var/lib/ntp/drift

broadcastdelay 0.008

keys /etc/ntp/keys

总结一下,restrict用来设置访问权限,server用来设置上层时间服务器,driftfile用来设置保存漂移时间的文件。

六.ntp服务的启动与观察

在启动NTP服务前,先对提供服务的这台主机手动的校正一次时间咯。(因为启动服务器,端口会被服务端占用,就不能手动同步时间了)

[root@linux ~] # ntpdate https://www.360docs.net/doc/c58662590.html,

25 Apr 14:33:51 ntpdate[8310]: step time server 80.85.129.2 offset 6.655976 sec

然后,启动ntpd服务:

[root@linux ~] # servicentpd start

或[root@linux ~] # /etc/init.d/ntpd start

查看端口:

[root@linux ~] # netstat -ln|grep 123

udp 0 0 192.168.228.153:123 0.0.0.0:*

udp 0 0 127.0.0.1:123 0.0.0.0:*

udp 0 0 0.0.0.0:123 0.0.0.0:*

udp 0 0 :::123 :::*

如何确认我们的NTP服务器已经更新了自己的时间呢?

[root@linux ~] # ntpstat

synchronized to NTP server(127.127.1.0) at stratum 11

time correct to within 950ms

polling server every 64 s

#改指令可列出NTP服务器是否与上层联机。由上述输出结果可知,时间校正约

#为950*10(-6)秒。且每隔64秒会主动更新时间。

常见的错误:

25 Apr 15:30:17 ntpdate[11520]: no server suitable for synchronization found

其实,这不是一个错误。而是由于每次重启NTP服务器之后大约要3-5分钟客户端才能与server建立正常的通讯连接。当此时用客户端连接服务端就会报这样的信息。一般等待几分钟就可以了。

[root@linux ~] # ntptrace –n 127.0.0.1

127.0.0.1:stratum 11, offset 0.000000,synch distance 0.950951

222.73.214.125:stratum 2,offset –0.000787,synch distance 0.108575

209.81.9.7:stratum 1,offset 0.000028,synch distance 0.00436,refid …GPS?

#这个指令可以列出目前NTP服务器(第一层)与上层NTP服务器(第二层)彼此之间的

#关系

[root@linux ~] # ntpq –p

指令“ntpq -p”可以列出目前我们的NTP与相关的上层NTP的状态,以上的几个字段的意义如下:

remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由“+”则代表目前正在作用钟的上层NTP,如果是“*”则表示也有连上线,不过是作为次要联机的NTP主机。

refid:参考的上一层NTP主机的地址

st:即stratum阶层

when:几秒前曾做过时间同步更新的操作

poll:下次更新在几秒之后

reach:已经向上层NTP服务器要求更新的次数

delay:网络传输过程钟延迟的时间

offset:时间补偿的结果

jitter:Linux系统时间与BIOS硬件时间的差异时间

最后提及一点,ntp服务,默认只会同步系统时间。如果想要让ntp同时同步硬件时间,可以设置

/etc/sysconfig/ntpd文件。

在/etc/sysconfig/ntpd文件中,添加SYNC_HWCLOCK=yes 这样,就可以让硬件时间与系统时间一起同步。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

linux配置时间服务器(ntp)

2007-10-27 16:34

在linux下,我们可以通过自带的NTP(Network Time Protocol)协议通过网络使自己的系统保持精确的时间。可用的公共时间服务器列表可以从下面的地址获取:

https://www.360docs.net/doc/c58662590.html,/bin/view/Servers/NTPPoolServers

NTP是用来使系统和一个精确的时间源保持时间同步的协议。建议大家在自己管理的网络中建立至少一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易。

介绍一下环境:179为本地时间服务器,其他服务器和179同步。179和网上时间服务器同步。

一、配置179时间服务器

1、首先查询NTP软件版本

rpm -qa|grepntp

ntp-4.1.2-4.EL3.1

如果没有可以从linux安装盘上查找,安装此ntp包

2、编辑配置文件

vi /etc/ntp.conf

首先定义服务器

server https://www.360docs.net/doc/c58662590.html,

restrict default nomodifynotrapnoquery

restrict 192.168.0.0 mask 255.255.255.0 notrustnomodifynotrap #从192.168.0.1-192.168.0.254的服务器都可以使用我们的NTP服务器来同步时间。

注释掉以下一行

#restrict default ignore

3、启动NTP服务器

#chkconfigntpd on

#/etc/init.d/ntpd start

#/etc/init.d/ntpd stop

#/etc/init.d/ntpd restart

默认情况下,我们配置的NTP服务器不会去时间源那里同步时间,所以必须修改/etc/ntp/step-tickers 文件,加入我们的时间源,这样每次通过/etc/init.d/ntpd来启动服务的时候就会自动更新时间了

检查服务器同步状态:

ntpq -p

ntptrace 192.168.0.179

如果输出正确,则说明时间服务器成功。每次启动服务器,会自动同步时间。

配置LINUX客户端

在linux客户端上执行ntpdatentp_server_ip就可以根据时间服务器统一局域网的时间了,将上面的命令放到cron里每天早上3点定期执行,crontab –e 然后输入

0 3 * * * /usr/sbin/ntpdate 192.168.0.179

为什么电脑要对时?因为电脑自己的钟不准。破电脑一天慢五分钟也不奇怪。

对时需要对到什么精度?一般家用的电脑时钟误差一分钟完全可以接受。集群服务器配合工作一般需要所有的时钟同步在一秒之内。

和谁同步?一般是和世界各地的NTP (Network Time Protocol)服务器同步的。米国标准时间由NIST 发布,NIST 提供了一些服务器。现代Windows 操作系统自动和https://www.360docs.net/doc/c58662590.html, 对时。Linux 下面一般用NTPPool来自动选择服务器。中国国家授时中心NTP 210.72.145.44 是中国权威时间。中国教育网有自己的NTP 服务器网。如果是集群服务器,一般会在内网配置几个本地NTP 服务器。

上面这么多NTP 服务器有没有优劣呢?有的,但是对于一般的应用来说,看不出什么区别。理论上说,NTP 服务器是分等级(Stratum)的,Stratum = 1 的NTP 服务器是直接和世界标准时钟同步的,包括GPS 时间、铯原子钟、某些手机网络等。NIST、中国国家授时中心和中国教育网的第一级时间服务器都

是这个级别的。Stratum = 2 的NTP 服务器是和Stratum = 1 的服务器同步的,性能稍差,但精确度也在毫秒的量级,所以用起来没什么区别。再往下每同步一级,Stratum 就加一。

Windows 2000 开始包含了自动时间同步的服务。Windows XP 上,打开时间设置就有网络对时的设置。默认是每星期和https://www.360docs.net/doc/c58662590.html, 对时一次。这个一星期同步一次太长了,可以通过注册表调整,或者用Wits修改。

Linux 下面的ntpd就要灵活多啦。默认配置一般足够好用。下面在Fedora 下举个例子。配置:

# grep "^server" /etc/ntp.conf

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server 127.127.1.0 # local clock

启动ntpd之后查看状态

# ntpq -pn

remote refid st t when poll

reach delay offset jitter

===================================================================== =========

64.25.87.54 128.118.25.5 2

u 10 64 17 79.194 -542.89 1.942

64.72.116.51 129.7.1.66 2

u 9 64 17 51.569 -532.23 1.803

64.72.116.50 129.7.1.66 2

u 11 64 17 51.417 -516.70 1.417

64.72.116.45 129.7.1.66 2

u 7 64 17 51.586 -532.36 1.135

*127.127.1.0 LOCAL(0) 10

l 3 64 17 0.000 0.000 0.001

st这列显示自动选的四个NTP 服务器都是Stratum = 2。最后一个是本地时钟。前四行的offset 显示本地时钟和四个NTP 服务器都有大概500 毫秒的差距。ntpstat显示目前只和本地时钟同步:

# ntpstat

synchronised to local net at stratum 11

time correct to within 949 ms

polling server every 64 s

过一会再看:

# ntpq -pn

remote refid st t when poll

reach delay offset jitter

===================================================================== =========

+64.25.87.54 128.118.25.5 2

u 56 64 377 78.548 250.871 37.180

+64.72.116.51 129.7.1.66 2

u 58 64 377 51.551 268.538 36.817

*64.72.116.50 129.7.1.66 2

u 58 64 377 51.539 274.497 36.629

+64.72.116.45 129.7.1.66 2

u 49 64 377 51.485 271.750 37.841

127.127.1.0 LOCAL(0) 10

l 44 64 377 0.000 0.000 0.001

# ntpstat

synchronised to NTP server (64.72.116.50) at stratum 3

time correct to within 263 ms

polling server every 64 s

本地时钟已经成功和外面的NTP 服务器同步。ntpq报告中第一列* 表示目前选择的主同步服务器,标+ 的表示有可能被用来进一步提高同步精度的次要服务器。因为是和Stratum = 2 的服务器同步,所以本地的ntpd Stratum 就是3 了。一个细节是ntpq对时钟是慢慢调整的,而不是直接跳好多秒,这样平滑的调整时间可以保证很多程序的流程平稳。不过,如果时钟误差过大,ntpd可能会拒绝调整时间;或者有人也可能希望立刻调正时间,这样的话可以直接执行命令:ntpdate -b https://www.360docs.net/doc/c58662590.html,(需要停掉ntpd服务执行)。

在我另一个服务器上,配置了好多NTP 服务器:

# grep "^server" /etc/ntp.conf

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server https://www.360docs.net/doc/c58662590.html,

server 127.127.1.0 # local clock

# ntpq -p

remote refid st t when poll

reach delay offset jitter

===================================================================== =========

+https://www.360docs.net/doc/c58662590.html, .ACTS. 1

u 61 128 377 76.113 -1.046 3.424

*https://www.360docs.net/doc/c58662590.html, .ACTS. 1

u 65 128 377 81.063 0.398 1.892

https://www.360docs.net/doc/c58662590.html, .ACTS. 1

u 251 128 356 38.911 1.353 30.226

-time.windows.co 18.26.4.105 2

u 45 128 267 31.218 13.180 6.039

-194.109.64.200 192.87.106.2 2

u 122 128 377 155.132 0.596 38.674

-a.mirror.fizzel 43.75.42.44 3

u 56 128 377 163.391 -11.756 13.006

-enfield.ikk.szt 195.111.99.186 2

u 118 128 377 188.326 -2.520 32.359

+https://www.360docs.net/doc/c58662590.html, .GPS. 1

u 59 128 377 161.103 -1.321 0.460

LOCAL(0) .LOCL. 10

l 48 64 377 0.000 0.000 0.001

标注- 的是那些相对来说不太准的钟(offset 或jitter 偏大),自动被剔除了。从delay 这里可以看到,我这里和NIST 几个钟网络延迟比较小(100 毫秒之内),一般这样的钟误差小一些。倒数第二个https://www.360docs.net/doc/c58662590.html, 选择的是一个和GPS 同步的钟,Stratum = 1,是一个比较准的钟了,只是网络延迟稍大。同时可以看到https://www.360docs.net/doc/c58662590.html, 的Stratum = 2,在一年以前,它曾经是6。堂堂国际大公司微软也不花几百块钱买个GPS 接收器建一个Stratrum = 1 的时钟服务器造福千千万万的windows 用户,真是不可理解。

最后,linux下防火墙规则如果极严格的话可能会影响ntpd对时,打开sport 123 即可(假设OUTPUT 链全ACCEPT):

iptables -I INPUT -p udp -m udp --sport 123 -j ACCEPT

Linux时间同步配置方法

Linux时间同步配置方法 1.查询是否安装ntp,若没有安装的话使用yum进行安装 rpm -q ntp yum–y install ntp 2.服务器端配置 服务器端需要修改配置文件/etc/ntp.conf vi/etc/ntp.conf 2.1以互联网的时间服务器为时间服务器的时钟 设置要求:以https://www.360docs.net/doc/c58662590.html, 为时间服务器,在ntp.conf中增加或修改以下内容: restrict default ignore# 关闭所有的NTP 要求封包 restrict 192.168.1.0 mask 255.255.255.0 notrapnomodify server https://www.360docs.net/doc/c58662590.html, #设置时间服务器 server 127.127.1.1 #开启内部递归网络接口 fudge 127.127.1.1 stratum 10 refid NIST # LCL 不同步 driftfile /etc/ntp.drift logfile /var/log/ntp.log Broadcastdelay 0.008 #广播延迟时间# 2.2以内部ntp服务器为数据服务器时钟 设置要求:不对Internet 提供服务,仅对内部子网提供服务,内部子网的客户端不能修改NTP服务器的时间参数。 在ntp.conf中增加或修改以下内容: restrict default ignore# 关闭所有的NTP 要求封包 restrict 127.0.0.1# 开启内部递归网络接口 restrict 192.168.0.0 mask 255.255.255.0 nomodify #在内部子网里面的客户端可以进行网络校时,但不能修改NTP服务器的时间参数。 server 198.168.77.170 #198.123.30.132作为上级时间服务器参考 driftfile /var/lib/ntp/drift broadcastdelay 0.008 #广播延迟时间#

C获取系统时间及时间格式

1、新建一个windows form 窗体应用程序。 2、在该窗体加载时,输入如下代码 [csharp] view plaincopy Thread P_thread = new Thread( () => //lambda表达式(参数列表)=>{执行语句} lambda表达式是比匿名方法更加简洁的一种匿名函数语法 { while (true) {//public Object Invoke (Delegate method)在(拥有此控件的基础窗口句柄的)线程上执行指定的委托。 //关于为何使用invoke方法,参见C#中跨线程调用控件的线程安全性方法一文 this.Invoke( (MethodInvoker)delegate()//methodinvoke 表示一个委托,该委托可执行托管代码中声明为void 且不接受任何参数的任何方法。 //在对控件的Invoke 方法进行调用时或需要一个简单委托又不想自己定义时可以使用该委托。 { this.Refresh(); Graphics P_Graphics = CreateGraphics(); // Control.CreateGraphics方法,为控件创建Graphics。 //public Graphics CreateGraphics () 返回值为控件的Graphics。Graphics 类提供将对象绘制到显示设备的方法 //public void DrawString( // string s, // Font font, // Brush brush, // PointF point //)在指定位置point并且用指定的Brush 和Font 对象绘制指定的文本字符串s。 P_Graphics.DrawString("系统时间:" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒"), new Font("宋体", 15), Brushes.Blue, new Point(10, 10)); });//this.invoke Thread.Sleep(1000); }//while

linux 的系统时间和硬件时间查看修改

linux 的系统时间有时跟硬件时间是不同步的 Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIOS中进行设置。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。 Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。 1、date 查看系统时间 # date 设置系统时间 # date --set “07/07/06 10:19" (月/日/年时:分:秒) 2、hwclock/clock 查看硬件时间 # hwclock --show 或者# clock --show 设置硬件时间 # hwclock --set --date="07/07/06 10:19" (月/日/年时:分:秒) 或者# clock --set --date="07/07/06 10:19" (月/日/年时:分:秒) 3、硬件时间和系统时间的同步 按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock或clock命令实现同步。 硬件时钟与系统时钟同步:# hwclock --hctosys(hc代表硬件时间,sys代表系统时间)或者# clock --hctosys 系统时钟和硬件时钟同步:# hwclock --systohc或者# clock --systohc

最新整理Linux系统修改时间用什么命令

L i n u x系统修改时间用什么命令 L i n u x中除了在控制面板手动设置时间外,还能用命令直接修改,如果熟悉命令的话,非常快,具体怎么操作呢。下面由学习啦小编为大家整理修改l i n u x时间的命令的相关知识,希望对大家有帮助! 修改l i n u x时间命令 我们一般使用d a t e-s命令来修改系统时间。比如将系统时间设定成1996年6月10日的命令如下。 #d a t e-s06/10/96 将系统时间设定成下午1点12分0秒的命令如下。 #d a t e-s13:12:00 注意,这里说的是系统时间,是l i n u x由操作系统维护的。 在系统启动时,L i n u x操作系统将时间从C M O S中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与C M O S时间的一致性, L i n u x 每隔一段时间会将系统时间写入C M O S。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行d a t e -s后,如果马上重起机器,修改时间就有可能没有被写入C M O S,这就是问题的原因。如果要确保修改生效可以

执行如下命令。 #h w c l o c k-w 这个命令强制把系统时间写入C M O S 相关阅读:L i n u x常用基本命令 文件名--t e s t m k d i r t e s t创建一个文件夹 m k d i r t e s t/t e s t1/t e s t2-p在创建t e s t1时候,继续创建t e s t2目录,一起创建 m v t e s t t e s t1修改文件名称 m v t e s t/位置复制文件到指定位置 c a t t e s t查看文件内容 u n z i p解压包解压当前文件 u n z i p解压包 -d/位置解压压缩包到指定位置 r m t e s t删除一个文件 r m-r f t e s t删除一个带文件或者文件夹的文件目录 c p t e s t t e s t1复制一个文件 c p-r t e s t t e s t1复制一个文件夹(包含文件夹下的文件) v i文件名修改文件内容

wincc系统日期时间获取

wincc系统日期时间获取 系统时间的获得,有两种办法,一是建立TAG,二是使用函数获取系统时间 方法一: 在[Tag Management]添加新的驱动"System Info.chn",然后在新添加的[SYSTEM INFO]新建连接,这样就可以创建实际TAG了; 下面新建几个TAG: 名字:date, 数据类型:text tag 8-bit character set,地址设定为Function:date,format:"MM-DD-YYYY" 名字:time, 数据类型:text tag 8-bit character set,地址设定为Function:Time,format:"HH:MM:SS" 根据上面的方法依次建立year,mon,day,week等TAG,请分别设置对应的format内容 TAG建立完成了,就可以读到系统时间了。新建一个图形文件,分别放置几个静态文本框[static text],把TEXT属性连接到上面新建的TAG,就可以显示系统日期时间,利用WEEK还能显示今天是星期几了. 方法二: 使用 C脚本获得系统时间 #include "apdefap.h" char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) { time_t timer;

struct tm *ptm; char *p; time(&timer); ptm=localtime(&timer); p=SysMalloc(9); sprintf(p,"%04d:%02d:%02d",ptm->tm_year+1900,ptm->tm_mon+1,p tm->tm_mday); return(p); } 其中 //系统时间已经获得 //年: ptm -> tm_year+1900 //月: ptm-> tm_mon+1 //日: ptm -> tm_mday //星期: ptm -> tm_wday *注意这个,tm_wday返回的是整数,必须经过转换才能用来表示星期几

Linux下文件定时同步

Linux下Rsync定时同步文件 一、rsync安装 1、两台服务器 Client------------222.27.106.89 (rsync的Client端) Server------------222.27.106.99 (rsync的server端) 2、安装过程 (1)服务端rsync安装 tar -zxvf rsync-3.0.7.tar.gz cd rsync-3.0.7 ./configure make make install 说明一点,客户机和服务器都要安装rsync。客户机以客户端 方式运行rsync,服务器端以服务器方式运行rsync,它监听873 端口 (2)配置文件 # touch /etc/ rsyncd.conf

# vi /etc/ rsyncd.conf (内容如下) #全局配置部分 secrets file = /etc/rsyncd.secrets read only = yes list = yes uid = root gid = root hosts allow = 222.27.106.89222.27.106.88 #客户端IP地址,多个IP以空格分开 #hosts deny = 10.4.5.0/24 use chroot = no max connections = 10 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock charset=GBK #模块配置部分 [rsyncd] comment = pag's directory #(自己的说明) path = /home/test#(要同步server端的目录)auth users = rsync #(用到的用户)

labView中如何获取windows当前系统时间

labView中如何获取windows当前系统时间 《labview8.2入门到精通》的PPT,第4章里面有个练习是“写一个VI获取当前系统时间,并将其转换为字符串和浮点数”。完成效果如图。我要怎么来获取当前系统的时间呢? 程序如下,还是比较简单的,用到的函数都在编程---定时和编程---数值---转换里 问题: 我从一个仪器当中读取到了GPS时间,并想在LabVIEW中以较高的分辨率设定Windows系统时间。我注意到LabVIEW的时间函数选版中有获取时间/日期的VI,但没有设定时间的VI。如何才能在LabVIEW中实现时间设定?

解答: LabVIEW中没有现成的VI用于系统时间设定,但可以通过Windows SDK来实现。参考以下的步骤,通过调用库函数节点的方式,调用kernel32.dll中SetSystemTime函数,可以设定系统时间: 1. 在程序框图中放置一个调用库函数节点。双击此节点打开调用 库函数对话框。 2. 点击浏览按钮并选择kernel32.dll (一般放置于 "C:\WINDOWS\system32\kernel32.dll")。 3. 在函数名下拉列表中选择"SetSystemTime" 。 4. 在调用规范下拉列表中选择"stdcall (WINAPI)" 。 5. 在返回类型中选择“数值”以及“有符号8位整数”。 6. 点击添加参数并在类型中选择“匹配至类型”,接着在数据格式 中选择“句柄指针”。 7. 点击确定按钮,完成对调用库函数节点的配置。 8. 这个函数以一个包含八个双字节(16位整数)的结构体作为参 数。在LabVIEW中,需要创建一个包含八个双字节的簇来传 递这个参数。八个双字节分别为年、月、星期、日、小时、分 钟、秒以及毫秒。将此簇连接至调用库函数节点的参数1。 9. 输入相应的值,并运行程序以设定系统时间。

linux时钟同步

34、linux时钟同步 需要root执行以下命令: 1、配置时钟同步信息 server 192.168.132.68 表示从192.168.132.68同步时钟 vi /etc/ntp.conf # For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5). driftfile /var/lib/ntp/drift # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default nomodify notrap nopeer noquery # Permit all access over the loopback interface. This could # be tightened as well, but to do so would effect some of # the administrative functions. restrict 127.0.0.1 restrict ::1 # Hosts on local network are less restricted. #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # Use public servers from the https://www.360docs.net/doc/c58662590.html, project. # Please consider joining the pool (https://www.360docs.net/doc/c58662590.html,/join.html). #server https://www.360docs.net/doc/c58662590.html, iburst #server https://www.360docs.net/doc/c58662590.html, iburst #server https://www.360docs.net/doc/c58662590.html, iburst #server https://www.360docs.net/doc/c58662590.html, iburst server 192.168.132.68 #broadcast 192.168.1.255 autokey # broadcast server #broadcastclient # broadcast client #broadcast 224.0.1.1 autokey # multicast server #multicastclient 224.0.1.1 # multicast client #manycastserver 239.255.254.254 # manycast server #manycastclient 239.255.254.254 autokey # manycast client # Enable public key cryptography. #crypto includefile /etc/ntp/crypto/pw # Key file containing the keys and key identifiers used when operating # with symmetric key cryptography. keys /etc/ntp/keys # Specify the key identifiers which are trusted. #trustedkey 4 8 42 # Specify the key identifier to use with the ntpdc utility.

Centos设置时区并调整时间

Centos设置时区并调整时间 租用的经常是国外的服务器,需要调整时区并调整时间.当然方法有很多种,我说说我经常用,而且是最简单的方法吧. cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate https://www.360docs.net/doc/c58662590.html, 很简单吧,解析一下,第一句是把当前时区调整为上海就是+8区,想改其他时区也可以去看看/usr/share/zoneinfo目录;然后第二句是利用ntpdate同步标准时间. 没有ntpdate的可以yum一下: yum install -y ntpdate 另外VMWARE下的linux时间老是不对,也可以用ntpdate来调整,算最烂的方法吧 crontab -e * * * * * /usr/sbin/ntpdate https://www.360docs.net/doc/c58662590.html, | logger -t NTP 设置修改CentOS系统时区 在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况。如果没有安装,而你使用的是 CentOS系统那使用命令 yum install ntp 然后:ntpdate https://www.360docs.net/doc/c58662590.html, 。 因为CentOS系统是用rhas的源码再编译的,很多地方是完全一样的。

rhas5的时区是以文件形式存在的,当前的时区文件是在/etc/localtime 那么其他时区的文件存放在哪里呢? 在/usr/share/zoneinfo下 我们用东八区,北京,上海的时间 #cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #reboot 重启之后,date查看时间、查看当前时区 date -R、查看/修改Linux时区和时间 一、时区 1. 查看当前时区 date -R 2. 修改设置时区 方法(1) tzselect 方法(2) 仅限于RedHat Linux 和 CentOS系统 timeconfig 方法(3) 适用于Debian dpkg-reconfigure tzdata 3. 复制相应的时区文件,替换CentOS系统时区文件;或者创建链接文件 cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime 在中国可以使用: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 二、时间 1、查看时间和日期 date

SUSE Linux中查询NTP时钟同步的几个现象(问题)

SUSE Linux中查询NTP时钟同步的几个现象(问题) 在为SUSE10SP3/SUSE10SP4版本的操作系统设置上级NTP时钟源时遇到了几个现象(或者说是问题),如果哪位大拿有遇到类似的现象并知道其根因和解决方法,分享给大家吧。。。 我们知道操作系统与上级NTP能同步的是有前提要求的——两者之间的时间差低于1000秒(我和SUSE工程师交流过这个限制的原因,他们的答复是当时间差大于1000秒时,Linux操作系统会“怀疑”上级NTP的时间不准,因此自动同步中止,避免上级NTP服务器的异常影响到自己的系统)。 现象1: 当服务器开始与上级NTP开始同步时(因为我们查看到两者之间的时间差在缩短),ntpq -q查询的回显信息中却有时没有* + # o这几个标示NTP同步状态的符号。 [root@tektea ~]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== https://www.360docs.net/doc/c58662590.html,. 223.255.185.2 2 u 4 64 1 397.594 95447.4 0.001 LOCAL(0) .LOCL. 10 l 3 64 1 0.000 0.000 0.001 现象2: 当无法连通上级NTP或上级NTP服务未启用时,ntpq -p中的回显信息中offset为0,这个可能会误导用户认为时间已经同步了。 现象3: ntpdate -q查询与某个时钟源同步状态时,会概率性查询失败,但在CentOS验证上倒是没有这个问题。 [root@tektea ~]# ntpdate -q NTP_IP_Address

linux(Red Hat)NTP时间同步的配置方法

局域网内 linux(Red Hat)NTP时间同步的配置方法 2009.12.31

目录 1.NTP跟踪层级安排 2.NTP配置数据对单点故障应对能力的评估3.NTP服务器- redhat服务器的配置数据及说明4.NTP客户机-redhat服务器的配置数据及说明

一.NTP跟踪层级安排 注1:如有其他与192.168.80.4同级的时钟源可用,则NTP的可靠性更佳。 网内所有NTP客户机由自已的NTP算法根据当时NTP服务器及网络状态自行选择NTP服务器:不是192.168.80.31就是192.168.80.34。一旦网内NTP客户机失

去了与网内NTP服务器的连接,将会按照自已的时钟频率将系统时间继续走下去,除了可能会造成日志时间和告警时间与标准时间有非常小的偏差外,不会对服务器应用或自身造成任何影响。 二.NTP配置数据对单点故障应对能力的评估 下面就局域网内系统中相关设备发生单点故障时,各设备的NTP时钟跟踪情况做一分析: 1.上级NTP服务器单机失效但vrrp有效: 2.上级NTP服务器vrrp失效): 3.局域网内的NTP server_1 (31)失效: 4.局域网内的NTP server_2 (34)失效:

三.NTP服务器-redhat服务器(31, 34)的配置数据及说明 (注:对NTP服务器的唯一要求是机器上不要跑双机系统。)1.NTP的配置文件(/etc/ntp.conf)的内容: ===============================#ntp restrict part restrict default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict 192.168.80.0 mask 255.255.255.0 nomodify notrap restrict 192.168.81.0 mask 255.255.255.0 nomodify notrap #ntp server part server 192.168.80.4 version 3 server 127.127.1.0 #fudge 127.127.1.0 stratum 10 #ntp other part driftfile /var/lib/ntp/drift ==============================2.硬件时间每日有条件地被系统时间更新的配置 (1)创建硬件时间更新脚本:

C#获取当前系统时间

C#获取当前系统时间 2010-01-02 16:24 --DateTime 数字型 System.DateTimecurrentTime=new System.DateTime(); 取当前年月日时分秒 currentTime=System.DateTime.Now; 取当前年 int 年=currentTime.Year; 取当前月 int 月=currentTime.Month; 取当前日 int 日=currentTime.Day; 取当前时 int 时=currentTime.Hour; 取当前分 int 分=currentTime.Minute; 取当前秒 int 秒=currentTime.Second; 取当前毫秒 int毫秒=https://www.360docs.net/doc/c58662590.html,lisecond; (变量可用中文) 取中文日期显示——年月日时分 string strY=currentTime.ToString("f"); //不显示秒 取中文日期显示_年月 string strYM=currentTime.ToString("y"); 取中文日期显示_月日 string strMD=currentTime.ToString("m"); 取当前年月日,格式为:2003-9-23 string strYMD=currentTime.ToString("d"); 取当前时分,格式为:14:24 string strT=currentTime.ToString("t"); DateTime.Now.ToString();//获取当前系统时间完整的日期和时间DateTime.Now.ToLongDateString();//只显示日期 xxxx年xx月xx日,一个是长日期 DateTime.Now.ToShortDateString();//只显示日期 xxxx-xx-xx 一个是短日期 //今天 DateTime.Now.Date.ToShortDateString(); //昨天的 DateTime.Now.AddDays(-1).ToShortDateString(); //明天的 DateTime.Now.AddDays(1).ToShortDateString(); //本周(注意这里的每一周是从周日始至周六止) DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString(); DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString(); //上周,上周就是本周再减去7天 DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();

linux之修改时钟(rtc)

Linux下的时钟 ========================= 第一部分:时间设置 ========================= 我们一般使用“date -s”命令来修改系统时间(这里说的是系统时间,是linux由操作系统维护的) 将日期时间设置成2014年8月7日下午3点5分0秒可以用 #date -s "08/07/2014 15:05:00" #date -s "2014-08-07 15:05:00" 这里的格式是"MM/DD/YYYY hh:mm:ss" 或者 #date 080715052014.00 这里的格式是MMDDhhmmYYYY.ss (月日时分年.秒) 在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。 #hwclock -w 这个命令强制把系统时间写入CMOS,(等同于hwclock --systohc) linux提供两类的rtc兼容性很高的用户空间系统调用接口,如下所示: (1)/dev/rtc ... 这个RTC适合pc体系的系统,而并不适合非x86体系的系统 (2)/dev/rtc0,/dev/rtc1 ... 他们依赖一种架构,这种架构在所有的系统上被RTC 芯片广泛的支持。 程序员必须知道,PC/AT的功能不总是有效,其他的系统可能会有另外的实现。这种情况下,如果在相同的系统结构上使用同样的RTC API,那么硬件会有不同的反应。例如,不是每一个RTC都提供IRQ,所以这些不能处理报警中断;标准的PC系统RTC只能处理未来24小时以内的闹钟,而其他系统的RTC可能处理未来一个世纪的任何时间。 在文件系统修改将rtc0改成rtc1 Vi etc/udev/rules.d/local.conf 或者在启动开发板下 设置系统时间 date -s "2014-08-07 15:05:00"

VC 获取当前时间

VC++中其实还是通过调用它自带的CTime类来完成的获取当前系统时间的,我们做一个小程序来了解这个过程吧!对话框里只有两个显示框和两个按钮,点下按钮显示当前时间。就这么一个小程序。 (1)建立应用程序外壳 创建一个新的AppWizard项目,命名为shiyan,选择Dialog based;其他都选用默认属性,单击Finish完成生成应用程序的步骤。进入对话框界面以后,按下图所示布置显示框和功能按钮。 (2)设置参数 其中上面的显示文本框设为CString型,命名为m_show,ID号为IDC_show。下面的显示文本框设为CString型,命名为m_show1,ID号为IDC_show1。 (3)编译程序 start键程序: void CDate1Dlg::Onstart() { //count=0; SetTimer(1,1000,NULL); // TODO: Add your control notification handler code here

} stop键程序: void CDate1Dlg::Onstop() { KillTimer(1); // TODO: Add your control notification handler code here } (4)增加计时器控件 View -> ClassWizard -> MessageMaps -> CUse progressDlg,加入WM_TIMER函数,编辑程序: void CDate1Dlg::OnTimer(UINT nIDEvent) { if(nIDEvent==1) { // count++; UpdateData(1); CTime mtime=CTime::GetCurrentTime();//获取当前时间 char i; CString w; i=char (mtime.GetDayOfWeek()); //获取当前时间的天数是这个星期的第几天,这里要注意了,系统上默认的一个星期的第一天是星期日,最后一天是周六,大家千万不要搞错了。我也是试了才知道的。 switch(i)//将数字状换成字符就不会出现星期7这种情况了 { case 2:

suse系统时间同步操作

s u s e系统时间同步操作 This model paper was revised by the Standardization Office on December 10, 2020

一、时区设置 使用utc还是local time. UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time) Local time 是你手表上的时间 linux可以处理UTC时间和蹩脚的Windows所使用的local time 如果机器上同时安装有Linux和Windows,建议使用local time 如果机器上只安装有Linux,建议使用utc 确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT) 1)/etc/sysconfig/clock查看当前时区 HWCLOCK="-u" #与下面设置的时区对应 下面2项不用改#jvm/Nginx等程序取的时间才与date命令时间一致TIMEZONE="America/New_York" DEFAULT_TIMEZONE="US/Eastern" 2)使用tzselect设置时区(========好像对时间同步没有用) #/usr/bin/tzselect 逐步选择就ok

3)复制相应的时区文件,替换系统默认时区 # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 或者 cp /usr/share/zoneinfo/Asia/Beijing /etc/localtime(====这个不能同步时间,不知原因) 4)java时区:java_opts增加 =GMT+8 二、时间同步 内网时间服务器: 1)服务器端配置/etc/ restrict restrict mask #有几种都配置上 restrict mask restrict mask restrict mask server #是时钟服务器 2)服务器端ntp服务启动(xntp / ntp) # /etc/ntpd start 3)客户端只做定时同步

linux修改时间日期

linux修改时间和日期的方法 修改linux的时间可以使用date指令 修改日期: 时间设定成2009年5月10日的命令如下: #date -s 05/10/2009 修改时间: 将系统时间设定成上午10点18分0秒的命令如下。 #date -s 10:18:00 修改时区: 找到相应的时区文件/usr/share/zoneinfo/Asia/Shanghai替换当前的/etc/localtime。 修改/etc/sysconfig/clock文件的内容为: ZONE=”Asia/Shanghai” UTC=false ARC=false 同步bios时间: 同步BIOS时钟,强制把系统时间写入CMOS,命令如下: #clock -w date命令的功能是显示和设置系统日期和时间。 输入date 查看目前系统时间。 修改时间需要date -功能字符修改内容 命令中各选项的含义分别为: -d datestr, --date datestr 显示由datestr描述的日期 -s datestr, --set datestr 设置datestr 描述的日期 -u, --universal 显示或设置通用时间

时间域 %H 小时(00..23) %I 小时(01..12) %k 小时(0..23) %l 小时(1..12) %M 分(00..59) %p 显示出AM或PM %r 时间(hh:mm:ss AM或PM),12小时 %s 从1970年1月1日00:00:00到目前经历的秒数 %S 秒(00..59) %T 时间(24小时制)(hh:mm:ss) %X 显示时间的格式(%H:%M:%S) %Z 时区日期域 %a 星期几的简称(Sun..Sat) %A 星期几的全称(Sunday..Saturday) %b 月的简称(Jan..Dec) %B 月的全称(January..December) %c 日期和时间(Mon Nov 8 14:12:46 CST 1999) %d 一个月的第几天(01..31) %D 日期(mm/dd/yy) %h 和%b选项相同 %j 一年的第几天(001..366) %m 月(01..12) %w 一个星期的第几天(0代表星期天) %W 一年的第几个星期(00..53,星期一为第一天) %x 显示日期的格式(mm/dd/yy) %y 年的最后两个数字(1999则是99) %Y 年(例如:1970,1996等) 需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。 例1:用指定的格式显示时间。 $ date '+This date now is =>%x ,time is now =>%X ,thank you !' This date now is =>11/12/99 ,time is now =>17:53:01,thank you ! 例2:用预定的格式显示当前的时间。 # date

linux系统时区设置

linux系统时区设置 系统时钟设置 格式:date 月/日时:分:年.秒 [root@localhost ~]# date 080319462010.55 二 8月 3 19:46:55 CST 2010 或使用date –set (月/日/年时:分:秒)设置时钟。 [root@localhost ~]# date –set “08/30/2010 09:50:11″(月/日/年时:分:秒)一 8月 30 09:50:11 CST 2010 查看系统时钟 [root@localhost ~]# date 日 8月 1 15:56:27 CST 2010 hwclock | clock时钟查看相同 [root@localhost ~]# hwclock –show 2010年08月01日星期日 16时07分01秒 -0.185252 seconds 设置硬件时钟 硬件时钟设置格式:hwclock | clock –set –date=(”月/日/年时:分:秒”)[root@localhost ~]# hwclock –set –date=”08/03/2010 19:57″ [root@localhost ~]# clock 2010年08月03日星期二 19时57分07秒 -0.462124 seconds [root@localhost ~]# clock –set –date=”08/03/10 20:00″ [root@localhost ~]# hwclock 2010年08月03日星期二 20时00分08秒 -0.236903 seconds 系统与硬件时钟同步 [root@localhost ~]# hwclock –systohc [root@localhost ~]# date 二 8月 3 19:59:23 CST 2010 [root@localhost ~]# clock 2010年08月03日星期二 19时59分32秒 -0.813133 seconds [root@localhost ~]# clock –systohc [root@localhost ~]# date 二 8月 3 20:00:06 CST 2010 将时钟信息永久写入BIOS中,避免重启系统时钟失效。 hwclock / clock -w 系统时区设置 使用tzselect设置系统时区。 [root@localhost ~]# tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent or ocean. 1) Africa 2) Americas 3) Antarctica 4) Arctic Ocean 5) Asia 6) Atlantic Ocean

c++ 简单获取系统时间

C++获取时间方法有多种,其中比较实用的是localtime函数 我们来看下下面这个范例 struct tm t; //tm结构指针 time_t nowT; //声明time_t类型变量 time(&nowT); //获取系统日期和时间 t = localtime( &nowT); //获取当地日期和时间 printf("%4d年%02d月%02d日%02d:%02d:%02d\n", t.tm_year + 1900, t.tm_mon + 1, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec); //格式化输出本地时间 该方法是调用了localtime函数进行时间获取,使用时得包含time.h头文件 #include 但是在vs上不少人会遇到编译器的报错提示,要求把localtime换成localtime_s 解释是为了安全性 如果出现这种情况我们只要改一行代码即可 t = localtime( &nowT); 改为localtime_s( &t,&nowT); 如果想要一次性输出日期与时间,那我们就要用到asctime函数 struct tm t; //tm结构指针 time_t nowT; //声明time_t类型变量 time(&nowT); //获取系统日期和时间 t = localtime( &nowT); //获取当地日期和时间 char TIMET[32]; TIMET = asctime(,&t); printf("now is: %s\n",TIMET ); 如诺出现vs的编译器报错,那只需要改成这样既可 struct tm t; //tm结构指针 time_t nowT; //声明time_t类型变量 time(&nowT); //获取系统日期和时间 localtime_s(&t, &nowT); //获取当地日期和时间 char TIMET[32]; asctime_s(TIMET, &t); printf("now is: %s\n",TIMET);

相关文档
最新文档