用C++ 语言获取本地时间格式如:12-25-13 10:38:01

用C++ 语言获取本地时间格式如:12-25-13 10:38:01,第1张

把整形时间转换成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系列可编程序控制器中读取内部时钟,用什么指令、易语言怎么取时间,北京时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9320999.html

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

发表评论

登录后才能评论

评论列表(0条)

保存