在LINUX下用C++编程,如何获取系统当前的时间。

在LINUX下用C++编程,如何获取系统当前的时间。,第1张

//方案— 优点:仅使用C标准库;缺点:只能精确到秒级

#include <timeh>

#include <stdioh>

int main( void )

{

time_t t = time(0);

char tmp[64];

strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );

puts( tmp );

return 0;

}

size_t strftime(char strDest, size_t maxsize, const char format, const struct tm timeptr);

根据格式字符串生成字符串。

struct tm localtime(const time_t timer);

取得当地时间,localtime获取的结果由结构tm返回

返回的字符串可以依下列的格式而定:

%a 星期几的缩写。Eg:Tue

%A 星期几的全名。 Eg: Tuesday

%b 月份名称的缩写。

%B 月份名称的全名。

%c 本地端日期时间较佳表示字符串。

%d 用数字表示本月的第几天 (范围为 00 至 31)。日期

%H 用 24 小时制数字表示小时数 (范围为 00 至 23)。

%I 用 12 小时制数字表示小时数 (范围为 01 至 12)。

%j 以数字表示当年度的第几天 (范围为 001 至 366)。

%m 月份的数字 (范围由 1 至 12)。

%M 分钟。

%p 以 ''AM'' 或 ''PM'' 表示本地端时间。

%S 秒数。

%U 数字表示为本年度的第几周,第一个星期由第一个周日开始。

%W 数字表示为本年度的第几周,第一个星期由第一个周一开始。

%w 用数字表示本周的第几天 ( 0 为周日)。

%x 不含时间的日期表示法。

%X 不含日期的时间表示法。 Eg: 15:26:30

%y 二位数字表示年份 (范围由 00 至 99)。

%Y 完整的年份数字表示,即四位数。 Eg:2008

%Z(%z) 时区或名称缩写。Eg:中国标准时间

%% % 字符。

//方案二 优点:能精确到毫秒级;缺点:使用了windows API

#include <windowsh>

#include <stdioh>

int main( void )

{

SYSTEMTIME sys;

GetLocalTime( &sys );

printf( "%4d/%02d/%02d %02d:%02d:%02d%03d 星期%1d\n",syswYear,syswMonth,syswDay,syswHour,syswMinute, syswSecond,syswMilliseconds,syswDayOfWeek);

return 0;

}

//方案三,优点:利用系统函数,还能修改系统时间

//此文件必须是c++文件

#include<stdlibh>

#include<iostream>

using namespace std;

void main()

{

system("time");

}

//方案四,将当前时间折算为秒级,再通过相应的时间换算即可

//此文件必须是c++文件

#include<iostream>

#include<ctime>

using namespace std;

int main()

{

time_t now_time;

now_time = time(NULL);

cout<<now_time;

return 0;

}

执行ntpdate xxxxxxxxxxxx(ntp服务器地址)。

Linux下配置NTP服务器

配置方法:

1、ntp服务安装

NTP服务在RHEL5x中式默认安装的软件包,可用rpm -qa |grep

ntp检查是否安装,如果未安装可使用如下命令安装与删除NTP服务器软件包

#使用rpm方式安装

rpm -ivh ntp-422p1-8el5i386rmp

#使用yum方式安装

yum -y install ntpi

#使用rpm方式删除

rpm -e ntp-422pl-8el5i386rpm

#使用yum方式删除

yum -y remove ntpi

2、ntp服务配置

在ntp服务安装完成后,需要修改ntp服务配置文件。ntp服务主配置文件/etc/ntpconf

21 ntp服务的启动、暂停

NTP属于system

V服务,其启动、暂停相关命令如下:

#启动

service ntpd

start

#停止

Service ntpd

stop

#重新加载

service ntpd

reload

#查看当前启动状态

service ntpd

status

22 ntp服务自动加载

设置ntp服务下一次开机运行状态可通过命令配置

#在运行级别2、3、4、5上设置为自动运行

chkconfig

ntpd on

#在运行级别2、3、4、5上设置为不自动运行

chkconfig

ntpd off

#在运行级别3、5上设置为自动运行

chkconfig

ntpd --level 35 on

#在运行级别3、5上设置为不自动运行

chkconfig

ntpd --level 35 off

23 配置信息

配置ntp,将Internet上的时间服务器作为内部标准时间来源,过程如下

1)修改/etc/ntpconf文件

restrict default kod nomodify notrap nopeer noquery

restrict 127001

restrict -6::1

restrict 19216800 mask 2552552550 nomodify notrap

restrict 19216810 mask 2552552550 nomodify notrap

#指定Internet上的时间服务器

restrict 20746232182 mask 255255255255 nomodify notrap noquery

server 20746232182

server 12712710

fudge 12712710 stratum 10

keys /etc/ntp/keys

#指定NTP服务器日志文件

logfile /var/log/ntp

2)修改/etc/ntp/stpe-tickers文件,内容如下(当ntpd服务启动时,会自动与该文件中记录的上层NTP服务进行时间校对)

20746232182

12712710

3)修改/etc/sysconfig/ntpd文件,内容如下:

#允许BIOS与系统时间同步,也可以通过hwclock -w 命令

SYNC_HWCLOCK=yes

4)在配置完成并重新启动服务后,可通过ntpstat

命令显示本机上一次与上层ntp服务器同步时间的情况,也可以使用ntpq -p 查看本机与上层ntp服务器通信情况,

24 图形界面配置NTP

图形界面下直接用system-config-date, 在“Network Time Protocol”选项页指定NTP服务器后勾选“Synchronize system clock before startingservice”,将ntpd服务设置为自动运行即可。

25 客户端访问

1)Linux客户端可通过图形界面进行配置,也可以通过ntpdate命令立即与NTP服务器及行时间校对。

ntpdate 192168010

2)Windows客户端,只需双击任务栏右下角的时钟,选择“Internet时间”选项页,输入NTP服务IP地址或FQDN,并勾选“自动与Internet时间服务器同步”即可。

Windows默认7天自动更新一次,可通过修改注册表HKEY_LOCAL_MACHINE\SYSTEM

\CurrentControlSet\services\W32Time\TimeProviders\NtpClient\SpecialPollInterval 默认单位为妙,修改后重新启动即可生效。

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感兴趣的话,可以看看>

date命令的功能是显示和设置系统日期和时间。 该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式) date 设置时间格式 命令中各选项的含义分别为: -d datestr, --date datestr 显示由datestr描述的日期 -s datestr, --set datestr 设置datestr 描述的日期 -u, --universal 显示或设置通用时间 时间域 % H 小时(00 ~ ]# date -d next-day +%Y%m%d20060328[root@linuxso ~ ]# date -d yesterday +%Y%m%d20060326[root@linuxso ~ ]# date -d last-month +%Y%m200602[root@linuxso ~ ]# date -d next-year +%Y2007------------------------------------------而FreeBSD则不同;举例如下:For FreeBSD[root@linuxso ~]# date -v -1m +%Y%m%d 20060227[root@linuxso ~]# date +%Y%m%d20100107上面是今天的日期20100107[root@linuxso ~]# date -d "4 days ago" +%Y%m%d 20100103上面是四天前的日期 [root@linuxso ~]# date -d "-2 days ago" +%Y%m%d 20100109上面是两天后的日期[root@linuxso ~]# date -d "1 year ago" +%Y%m%d 20090107上面是一年前的日期

以上就是关于在LINUX下用C++编程,如何获取系统当前的时间。全部的内容,包括:在LINUX下用C++编程,如何获取系统当前的时间。、linux 如何获取ntp服务器时间、linux 怎么用命令查看日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9296321.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存