把整形时间转换成tm结构之后,就可以转换成自己想要的任意格式,示例代码:
#include <timeh>#include <cstdio>
#include <iostream>
using namespace std;
/把整形时间转换成字符串格式的时间/
int TimeNumToStr(time_t time, char pBuf)
{
struct tm tmT;
tmT = localtime(&time);
if (NULL == tmT)
{
//printf("tmT is NULLtime = %u\n", time);
return -1;
}
/时间格式:月-日-年 时:分:秒/
sprintf(pBuf, "%02d-%02d-%02d %02d:%02d:%02d",
tmT->tm_mon += 1,
tmT->tm_mday,
tmT->tm_year - 100,/tm里的时间是从1900年到目前的年数,这里只显示两位,所以减100/
tmT->tm_hour,
tmT->tm_min,
tmT->tm_sec
);
return 0;
}
int main(int argc, char argv[])
{
/获取当前时间/
time_t tmNow = time(NULL);
char cTmp[50] = {0};
/转换时间为指定格式/
TimeNumToStr(tmNow, cTmp);
/输出结果/
cout<<cTmp<<endl;
return 0;
}
把TimeNumToStr函数拷贝到你的代码里,注意包含相关头文件,就可以了,测试结果:
s7200系列可编程序控制器中读取内部时钟,用readrtc和setrtc指令。根据查询相关资料信息显示,读取实时时钟指令从硬件时钟读取当前时间和日期,并将其载入以地址T起始的8个字节的时间缓冲区。
标签1标题=到文本(取现行时间())
这个只是取当前系统的时间的 电脑时区是北京的话就是北京时间了
如果要实时的话就结合时钟来完成
时钟1时钟周期 = 1000 ‘1000毫秒=1秒,0代表停止
楼上的代码就非常详细的展示了
如果要实时显示服务器时间,最好先同步服务器时间,然后用timer显示本地时间。
1、获取服务器时间
如果取数据服务器时间,可以用sql取,如oracle的sysdate。。。select sysdate from dual
如果取应用服务器时间,可以在服务器写个远程方法取服务器本地时间 如:now,,然后客户端调用
2、客户端同步服务器时间 uses windows;setsystemtime();
3、timer定时刷新本地时间
RTC时间 *** 作:
1rtc时间是由rtc硬件控制的,所以在linux中想要修改和获取rtc时间就只能通过驱动的接口来获取和修改。
intrtc_test(void)
{
structrtc_timertc;
intfd=-1;
intret=-1;
fd=open("/dev/rtc0",O_RDWR);
if(fd<0){
return-1;
}
ret=ioctl(fd,RTC_RD_TIME,&rtc);
if(ret<0){
return-1;
}
printf("\nCurrentRTCdata/timeis%d-%d-%d,%02d:%02d:%02d\n",rtctm_mday,rtctm_mon+1,
rtctm_year+1900,rtctm_hour,rtctm_min,rtctm_sec);
ret=ioctl(fd,RTC_SET_TIME,&rtc);
if(ret<0){
return-1;
}
return0;
}
2除了上面这种方式 *** 作rtc时间以外,linux中也有一个命令可以简化rtc时间 *** 作,hwclock,比如,可以通过system("hwclock-w");系统调用来把xtime设置到rtc硬件。
墙上时间(realtime、xtime):
linux系统中主要使用的就是xtime,它是系统运行的基础,很多程序都是依赖于xtime来运行的,接下来将介绍将如何 *** 作xtime。
1获取、设置微秒级别的时间:
#include
#include
structtimeval
{
inttv_sec;
inttv_usec;
};
intgettimeofday(structtimevaltv,structtimezonetz);
intsettimeofday(conststructtimevaltv,conststructtimezonegz);
功能描述:
gettimeofday()获取当前时间,有tv指向的结构体返回。
settimeofday()把当前时间设成由tv指向的结构体数据。当前地区信息则设成tz指向的结构体数据。
2获取秒级别的时间
typedeflongtime_t;
time_ttime(time_tt);
如果t是non-null,它将会把时间值填入t中
3内核26版本后新增的clockapi接口
获取纳秒级别的时间
structtimespec{
time_ttv_sec;/秒s/
longtv_nsec;/纳秒ns/
};
intclock_getres(clockid_tclk_id,structtimespecres);
intclock_gettime(clockid_tclk_id,structtimespectp);
intclock_settime(clockid_tclk_id、conststructtimespectp);
编译连接时采用-lrt才能编译通过。
clk_id可选参数:
CLOCK_REALTIME
系统全局的实时时钟设置此时钟需要合适的权限
CLOCK_MONOTONIC
只能被读取,无法被设置,表示monotonic时间起点
CLOCK_PROCESS_CPUTIME_ID
从cpu每进程的高分辨率计时器
CLOCK_THREAD_CPUTIME_ID
线程的特定cpu时间时钟
系统启动时,会首先从rtc中读取rtc时间,并设置给xtime,而当ntp对系统时间进行更新时,首先设置xtime,然后调用hwclock设置到rtc硬件中。xtime根据需要的精度,可以通过上面几个接口来选择使用。
以上就是关于用C++ 语言获取本地时间格式如:12-25-13 10:38:01全部的内容,包括:用C++ 语言获取本地时间格式如:12-25-13 10:38:01、s7200系列可编程序控制器中读取内部时钟,用什么指令、易语言怎么取时间,北京时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)