精华内容
下载资源
问答
  • 2018-08-13 23:05:42

    1、获取系统时间

    time_t      time(

    time_t  *t

    );

    返回从1970.1.1到指定时间 t 的秒数

     

    time_t 为64位长整型,即__int64

    VC6.0的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[0,2^64),即-9223372036854775808~9223372036854775807与0~18446744073709551615(约1800亿亿)。对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64位与32位的混合运算时,32位整数会被隐式转换成64位整数。

     

     

    2、转换为本地时间

    函数定义

    1、localtime —— 平台通用,多线程下不安全

    struct tm   *localtime(

        const time_t *clock

    );

    这个函数在返回的时候,返回的是一个指针,实际的内存是localtime内部通过static申请的静态内存,所以通过localtime调用后的返回值不及时使用的话,很有可能被其他线程localtime调用所覆盖掉。

     

    2、localtime_r —— Linux平台,安全函数

    多线程应用里面,应该用localtime_r函数替代localtime函数,因为localtime_r是线程安全的,但是localtime_r只能运行于Linux平台。

    struct tm*   localtime_r(

        const time_t* timer,

        struct tm* result

    );

     

    3、localtime_s —— Windows平台,安全函数

    localtime_s也是用来获取系统时间,运行于windows平台下,与localtime_r只有参数顺序不一样.

    errno_t   localtime_s(

        struct tm* _tm,

        const time_t *time

    );

     

    时间结构体

    struct tm {
            int tm_sec;     /* seconds after the minute - [0,59] */
            int tm_min;     /* minutes after the hour - [0,59] */
            int tm_hour;    /* hours since midnight - [0,23] */
            int tm_mday;    /* day of the month - [1,31] */
            int tm_mon;     /* months since January - [0,11] */
            int tm_year;    /* years since 1900 */
            int tm_wday;    /* days since Sunday - [0,6] */
            int tm_yday;    /* days since January 1 - [0,365] */
            int tm_isdst;   /* daylight savings time flag */
            };

     

     

    使用例子

        time_t timeSec=time(NULL);
        struct tm* ptm=localtime(&timeSec);
        sprintf("%02d:%02d:%02d",ptm->tm_hour, ptm->tm_min, ptm->tm_sec);

     

        time_t timeSec=time(NULL);
        struct tm ptm={ 0 };
        localtime_r(&timeSec, &ptm);
        sprintf("%02d:%02d:%02d", ptm.tm_hour, ptm.tm_min, ptm.tm_sec);

     

        time_t timeSec = time(NULL);
        struct tm ptm;
        localtime_s(&ptm, &timeSec);
        printf("%d:%d:%d", ptm.tm_hour, ptm.tm_min, ptm.tm_sec);

     

    注意,不能写成如下格式!!!

        time_t timeSec = time(NULL);
        struct tm *ptm = NULL;
        localtime_s(ptm, &timeSec);
        printf("%d:%d:%d", ptm->tm_hour, ptm->tm_min, ptm->tm_sec);

    否则程序会崩溃并抛出异常:

    原因是系统不允许空指针作为参数去调用标准库函数!!

     

     

     

     

     

     

    更多相关内容
  • LINUX 下C++ 获取系统时间和设置时间,是个类,已经测试通过,需要用管理员用户
  • 最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。 下面,在这篇文章中,笔者将主要介绍在C/C++时间和日期的使用方法. 通过学习许多C/C++库,你可以有很多操作、使用时间的...
  • 本文实例讲述了C++获取当前系统时间的方法。分享给大家供大家参考。具体如下: 方案— 优点:仅使用C标准库;缺点:只能精确到秒级 #include #include int main( void ) { time_t t = time(0); char tmp[64]; ...
  • C++获取当前时间精确到毫秒Ms
  • C++获取系统时间 很全面的哦 C++获取系统时间 很全面的哦
  • C or C++获取系统时间

    2013-11-22 17:27:51
    C or C++获取系统时间 个人尝试可以用。
  • 利用c++获取系统时间

    2013-03-24 14:23:07
    利用c++写的一个有关获取系统时间的类,使用时可直接在主函数文件中调用。
  • 总结了常用的四种方法。包括: 方法一 利用 SYSTEMTIME 方法二 利用 GetTickCount()函数 方法三 使用clock()函数 方法四 获取高精度时间差 个人感觉还是很清晰明了的。希望对大家有用。
  • 本文实例讲述了C++设置系统时间系统时间网络更新的方法。分享给大家供大家参考。具体实现方法如下: 代码如下://根据返回的时间设置系统时间 void setTimeFromTP(ULONG ulTime) {   FILETIME ft;   ...
  • C++ 获取系统当前时间

    千次阅读 2021-05-11 11:25:22
    C++ 获取系统当前时间c++ time函数_C++的日期和时间函数获取系统当前时间实例 c++ time函数_C++的日期和时间函数 C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用...

    c++ time函数_C++的日期和时间函数

    C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime>头文件。

    • 有四个与时间相关的类型:clock_ttime_tsize_ttm
    • 类型 clock_tsize_ttime_t 能够把系统时间和日期表示为某种整数。

    结构类型 tm 把日期和时间以 C 结构的形式保存,tm 结构的定义如下:

    #ifndef _TM_DEFINED
    struct tm {
            int tm_sec;     /* seconds after the minute - [0,59] */
            int tm_min;     /* minutes after the hour - [0,59] */
            int tm_hour;    /* hours since midnight - [0,23] */
            int tm_mday;    /* day of the month - [1,31] */
            int tm_mon;     /* months since January - [0,11] */
            int tm_year;    /* years since 1900 */
            int tm_wday;    /* days since Sunday - [0,6] */
            int tm_yday;    /* days since January 1 - [0,365] */
            int tm_isdst;   /* daylight savings time flag */
            };
    #define _TM_DEFINED
    #endif  /* _TM_DEFINED */
    
    • 【注意】结构体struct tm的年份是从1900年起至今多少年,月份从0开始的,0表示一月,星期也是从0开始的, 0表示星期日,1表示星期一。

    下面是 C/C++ 中关于日期和时间的重要函数。所有这些函数都是 C/C++ 标准库的组成部分,您可以在 C++ 标准库中查看一下各个函数的细节。

    序号函数描述
    time_t time(time_t *time);该函数返回系统的当前日历时间,自 1970 年 1 月 1 日以来经过的秒数。如果系统没有时间,则返回 .1。
    char *ctime(const time_t *time);该返回一个表示当地时间的字符串指针,字符串形式 day month year hours:minutes:seconds year/n/0。
    struct tm *localtime(const time_t *time);该函数返回一个指向表示本地时间的 tm 结构的指针。
    clock_t clock(void);该函数返回程序执行起(一般为程序的开头),处理器时钟所使用的时间。如果时间不可用,则返回 .1。
    char * asctime ( const struct tm * time );该函数返回一个指向字符串的指针,字符串包含了 time 所指向结构中存储的信息,返回形式为:day month date hours:minutes:seconds year/n/0。
    struct tm *gmtime(const time_t *time);该函数返回一个指向 time 的指针,time 为 tm 结构,用协调世界时(UTC)也被称为格林尼治标准时间(GMT)表示。
    time_t mktime(struct tm *time);该函数返回日历时间,相当于 time 所指向结构中存储的时间。
    double difftime ( time_t time2, time_t time1 );该函数返回 time1 和 time2 之间相差的秒数。
    size_t strftime();该函数可用于格式化日期和时间为指定的格式。

    当前日期和时间

    下面的实例获取当前系统的日期和时间,包括本地时间和协调世界时(UTC)。

    #include <iostream> 
    #include <ctime> 
    using namespace std;
    
    int main( )
     {
      // 基于当前系统的当前日期/时间
    time_t now = time(0); // 把 now 转换为字符串形式 
    char* dt = ctime(&now); cout << "本地日期和时间:" << dt << endl;
    
     // 把 now 转换为 tm 结构
    tm *gmtm = gmtime(&now); dt = asctime(gmtm);
    std::cout << "UTC 日期和时间:"<< dt << std::endl;
     }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    本地日期和时间:Sat Jan 8 20:07:41 2011 UTC 日期和时间:Sun Jan 9 03:07:41 2011

    使用结构 tm 格式化时间

    tm 结构在 C/C++ 中处理日期和时间相关的操作时,显得尤为重要。tm 结构以 C 结构的形式保存日期和时间。大多数与时间相关的函数都使用了 tm 结构。下面的实例使用了 tm 结构和各种与日期和时间相关的函数。

    在练习使用结构之前,需要对 C 结构有基本的了解,并懂得如何使用箭头 -> 运算符来访问结构成员。

    #include <iostream>
     #include <ctime> 
    using namespace std; 
    
    int main( ) { 
    
    // 基于当前系统的当前日期/时间
    time_t now = time(0); 
    std::cout << "1970 到目前经过秒数:" << now << std::endl; 
    tm *ltm = localtime(&now); 
    // 输出 tm 结构的各个组成部分 
    std::cout << "年: "<< 1900 + ltm->tm_year << std::endl; 
    std::cout << "月: "<< 1 + ltm->tm_mon<< std::endl; 
    std::cout << "日: "<< ltm->tm_mday << std::endl; 
    std::cout << "时间: "<< ltm->tm_hour << ":"; 
    std::cout << ltm->tm_min << ":"; 
    cout << ltm->tm_sec << endl; 
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:
    1970 到目前时间:1503564157 年: 2017 月: 8 日: 24 时间: 16:42:37

    ———————————————
    版权声明:本文为CSDN博主「邪王真眼小埋粉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:link

    获取系统当前时间实例

    方法①

    #include <process.h>
    #include <string>
    #include <iostream>
    #include <ctime>
    
    using namespace std;
    
    
    /*******************************************************************
    * C++ 标准库没有提供所谓的日期类型。
    * C++ 继承了 C 语言用于日期和时间操作的结构和函数。
    * 为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。
    
    *******************************************************************/
    std::string GetSystemTime()
    {
    	time_t tt;
    	struct tm *t;
    	tt = time(0);
    	t = localtime(&tt);
    	char char_time[50] = {};
    	sprintf(char_time, " %04d-%02d-%02d %02d:%02d:%02d", t->tm_year + 1900,
    			t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
    	std::string str_system_time = static_cast<std::string>(char_time);
    	return str_system_time;
    }
    
    int main(void)
    {
    	std::string system_time = GetSystemTime();
    	std::cout << "current_system_time :" << system_time;
    	system("pause");
    	return 0;
    }
    

    编译时会出现以下错误:在这里插入图片描述

    Error	1	error C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	d:\users\ntf\documents\visual studio 2013\projects\demotest\getsystemtime\getsystemtime.cpp	19	1	GetSystemTime
    

    解决办法:在预处理器中使用 _CRT_SECURE_NO_WARNINGS

    • CRT函数(C Runtime Library = C运行时间库)函数,是微软公司对C/C++语言的扩展。CRT函数就是标准的C语言函数。例如,printf、scanf、strlen、fopen等函数就属于CRT函数
    • 在这里插入图片描述

    方法②
    按字符串输出,格式已规定好,不可自己改变格式
    格式:Thu May 11 13:58:26 2021

    #include <time.h>
    #include <process.h>
    #include <stdio.h>
    int main()
    {
    	time_t timep;
    	time(&timep); //获取从1970至今过了多少秒,存入time_t类型的timep
    	printf("%s", ctime(&timep));//用ctime将秒数转化成字符串格式,输出:Thu May 11 13:58:26 2021
    	system("pause");
    	return 0;
    }
    

    方法③
    用stuct tm结构体,可自己改变格式
    输出:2021/5/11 14:04:44

    #include <time.h>
    #include <stdio.h>
    #include <process.h>
    
    int main()
    {
    	time_t timep;
    	struct tm *p;
    
    	time(&timep); //获取从1970至今过了多少秒,存入time_t类型的timep
    	p = localtime(&timep);//用localtime将秒数转化为struct tm结构体
    
    	printf("%d/%d/%d %02d:%02d:%02d\n", 1900 + p->tm_year, 1 + p->tm_mon,
    		   p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);//2021/5/11 14:04:44
    
    	system("pause");
    	return 0;
    }
    

    若需要输出星期

    #include <time.h>
    #include <stdio.h>
    #include <process.h>
    
    int main()
    {
    	time_t timep;
    	struct tm *p;
    
    	time(&timep); //获取从1970至今过了多少秒,存入time_t类型的timep
    	p = localtime(&timep);//用localtime将秒数转化为struct tm结构体
    
    	char *wday[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
    	printf("%s", wday[p->tm_wday]);//Thu
    
    	system("pause");
    	return 0;
    }
    

    方法④
    效果和方法②相同,按字符串输出,格式已规定好,不可自己改变格式
    格式:Tue May 11 14:10:58 2021

    #include <time.h>
    #include <stdio.h>
    #include <process.h>
    
    int main()
    {
    	time_t timep;
    
    	time(&timep); //获取从1970至今过了多少秒,存入time_t类型的timep
    	
    	//用localtime将秒数转化为struct tm结构体,再用asctime将结构体转化成字符串格式
    	printf("%s", asctime(localtime(&timep)));// Tue May 11 14:10:58 2021
    
    	system("pause");
    	return 0;
    }
    

    大体思路

    • 需要头文件#include <time.h>
    • 在计算机中看到的utc时间都是从(1970年01月01日 0:00:00)开始计算秒数的。
    • 我们可以通过函数time()来获取从1970年到现在经过了多少秒,并定义time_t 这种类型(本质上是长整型long)来存储从1970年到现在经过了多少秒。
    • 现在我们有了1970年至今的秒数了,但是我们是无法直接通过秒数看出当前的年月日的,所以需要用函数进行转化。(比如直接告诉你现在距离1970年过了1551193610秒,你是不知道今天几号的,得通过函数转化成“Tue May 11 14:10:58 2021”这种形式)
    • 这里用于转化的函数,我们暂且称之为时间函数,它们有很多。
    • 我们按照输出参数类型进行分类,一共有两种:
    • 第一种是直接输出字符指针类型,这种函数的好处是可以直接打印字符串(输出如 :Tue Feb 26 20:32:53 2019),但是它的缺点是无法按照想要的格式输出。
      第二种函数是输出struct tm结构体类型指针,这种结构体中分别定义了年月日时分秒等,我们可以利用它输出成我们想要的格式(如:2019/2/26 21:01:38)。

    【这是我的理解,我感觉有些博文中说的有两种储存方式会略显凌乱,那样子可能会误以为不用定义time_t也可以直接通过struct tm来读取日期,而事实上并不能。我觉得time_t类型和struct tm结构体之间的关系应该如上所述,time_t是用来存放1970至今的秒数的一个长整型而已,存放下来的秒数可以通过各种时间函数来转化成struct tm结构体指针,方便格式化输出,这样子就比较清晰了。】

    具体使用与解析

    1、定义time_t类型变量,用来存储1970至今的秒数
    本质上time_t是长整型,我用 long 替换后运行没有任何差别。

    time_t timep;
    

    2、利用函数time()获取从1970年至今的秒数

     time(&timep);
    

    函数原型 : time_t time(time_t *t);

     time(&timep);
     printf("%d",timep);
    

    输出 : 1551193610
    3、使用各种时间函数将time_t类型存储的秒数转换为常见的格式

    我们可以用下面几种函数将秒数转化成我们常用的格式:
    有点容易混淆,先把表格贴上来,方便对比异同。

    函数名称是否是准确时间(加地方时)传入参数类型返回值类型
    localtimetime_t类型的地址 const time_t *结构体指针 stuct tm*
    ctimetime_t类型的地址 const time_t *字符指针 char *
    gmtime×time_t类型的地址 const time_t *结构体指针 stuct tm*
    asctime加不加地方时取决于传入的结构体有没有加地方时(与上列函数不同类,在此仅作对比辨析)struct tm结构体类型的指针 const struct tm*字符指针 char *

    asctime()函数其作用是将结构中的信息转换字符串格式,加不加地方时取决于传入的结构体有没有加地方时,传入用 localtime生成的结构体加地方时,传入用gmtime生成的结构体不加地方时。asctime()与上列函数不同类,localtime、ctime、gmtime是将存在 time_t类型中的秒数转化为字符串或stuct tm结构体类型,而asctime则是将stuct tm结构体转化为字符串,因此在此仅作对比辨析,详细的我在第4点中细说。

    【UTC就是0时区的时间,UTC加上地方时为本地时间】
    这里出现了一个新名词:地方时,因为咱们存在time_t中的总秒数是以0时区为准的,要加上地方时才是当前所在地的真实时间。(至于时区的概念可以参考高中还是初中的地理书)
    简单来说:想要获取当前电脑显示的时间,请选用localtime,ctime这两个加过地区时的函数。

    【例如我所在区域(真正时间为Tue May 11 22:10:58 2021)
    用加地方时的函数输出:Tue May 11 22:10:58 2021
    不加地方时的函数输出:Tue May 11 14:10:58 2021
    相差8个小时(北京为东八区)】

    (1) localtime
    【加地方时】将timep转换为真实世界的时间,传入一个time_t类型变量的地址,返回一个struct tm结构体类型指针,优点是可以自行控制输出格式,缺点是不能直接当作字符串输出,得用指针访问结构体内部输出。
    函数原型 : stuct tm* localtime(const time_t *timep);

        struct tm *p;
        p = localtime(&timep);
        printf("%d/%d/%d %02d:%02d:%02d\n", 1900 + p->tm_year, 1+ p->tm_mon,
        						 p->tm_mday,p->tm_hour, p->tm_min, p->tm_sec);
        ```
        输出 : 2021/25/11 14:25:38
        
    如果要输出星期的话,还要加上
    ```cpp
        char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
        printf("%s", wday[p->tm_wday]);
    

    输出 : Tue
    (2)ctime
    【加地方时】将timep转换为真实世界的时间,传入一个time_t类型变量的地址,返回一个字符数组指针,优点是可以直接按字符串输出,缺点是不能自行控制输出格式
    函数原型 :char *ctime(const time_t *timep);

    printf("%s", ctime(&timep));
    

    输出 : Tue May 11 14:10:58 2021
    --------------------------------
    以上都是加地方时的:localtime,ctime
    以下都是不加地方时(UTC)的:gmtime
    --------------------------------
    (3)gmtime
    【不加地方时】传入一个time_t类型变量的地址,返回一个struct tm结构体类型指针,优点是可以自行控制输出格式,缺点是不能直接当作字符串输出,得用指针访问结构体内部输出。
    和localtime类似,区别是gmtime不加地方时。

    函数原型 : struct tm* gmtime(const time_t *timep);

        struct tm *p;
        p = gmtime(&timep);
        printf("%d/%d/%d %02d:%02d:%02d\n", 1900 + p->tm_year, 1+ p->tm_mon,
        						 p->tm_mday,p->tm_hour, p->tm_min, p->tm_sec);
    

    输出 : 2021/5/11 14:31:07
    【实际时间:2021/5/11 22:31:07】
    如果要输出星期的话,还要加上

        char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
        printf("%s", wday[p->tm_wday]);
    

    输出 : Thu
    4、将struct tm结构体转化为字符串
    asctime函数
    传入一个struct tm结构体类型的指针,返回一个字符数组指针。
    我们用localtime或者gmtime将秒数转化成struct tm结构体类型就是为了可以自己定义输出方式,这个函数的作用是将我们好不容易转化的struct tm结构体类型按照字符串的格式输出,嗯~ o( ̄▽ ̄)o有点迷……只能说函数给的很全面,作用就是这么个作用。

    函数原型 : char * asctime(const struct tm* timeptr);

    (1)用localtime转化成的结构体是加地方时的。
    asctime(localtime(&timep))与ctime(&timep)效果完全相同。
    前者先将秒数转化成结构体再转化成字符串,后者直接将秒数转化成字符串格式。

    printf("%s", asctime(localtime(&timep))); //输出 : Thu Feb 28 13:38:41 2019
    

    (2)用gmtime转化成的结构体是不加地方时的。

    printf("%s", asctime(gmtime(&timep)));//输出 : Thu Feb 28 05:38:41 2019
    

    再友情提醒一遍,当前真实时间是Thu Feb 28 13:38:41 2019哦~

    5、一些不常用的其他函数
    (1)difftime返回两个时间相差的秒数

    double difftime(time_t time1, time_t time2);
    

    (2)gettimeofday返回当前距离1970年的秒数和微妙数,后面的tz是时区,一般不用

    int gettimeofday(struct timeval *tv, struct timezone *tz);
    

    (3)mktime将struct tm 结构的时间转换为从1970年至今的秒数
    (果然函数给的很全,这种都有……)

    time_t mktime(struct tm* timeptr);
    

    四、回顾与梳理

    在计算机中时间都是从(1970年01月01日 0:00:00)开始计算秒数的。
    1、我们首先定义time_t 这种类型(本质上是长整型long)来存储从1970年到现在经过了多少秒。

    2、再通过函数time()来获取从1970年到现在经过了多少秒

    3、为了便于阅读,我们采用函数将“过了多少秒”进行转化
    可以用以下函数,这里再次辨析一遍

    函数名称是否是准确时间(加地方时)区别
    localtime准确时间传入秒数,输出结构体,方便自定义格式输出
    ctime准确时间传入秒数,输出字符指针,方便直接输出
    gmtime非本地时间,是0时区时间传入秒数,输出结构体,方便自定义格式输出

    4、一些其他函数
    主要是asctime函数,它的作用是将struct tm结构体转化为字符串,加不加地方时完全取决于传入的结构体有没有加地方时。有的博文将他归类为生成不加地方时的函数,是不合理的,大家注意辨析。

    【这块儿很简单,但是用的时候发现参考了一堆文章,发现网上有的思路不是很清晰,本来想写简明,结果啰啰嗦嗦一大堆……第一次写博文,写的不好的地方大家多担待,也欢迎大家提出建议意见】
    ————————————————
    版权声明:本文为CSDN博主「YuXi_0520」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:link

    展开全文
  • C++获取当前系统时间

    千次阅读 2022-01-14 10:08:08
    在Linux环境下,c++获取当前系统时间的相关代码: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char *argv[]) { time_t t; struct tm *tmp; char buf2...

    在Linux环境下,C++获取当前系统时间的相关代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main(int argc, char *argv[])
    {
        time_t t;
        struct tm *tmp;
        char buf2[64];
        
        /* 获取时间 */
        time(&t);
        tmp = localtime(&t);
        /* 转化时间 */
        // if (strftime(buf2, 64, "当前时间: %Y-%m-%d %H:%M:%S", tmp) == 0) {
        //     printf("buffer length 64 is too small\n");
        // } 
        // else {
        //     printf("%s\n", buf2);
        // }
        strftime(buf2, 64, "当前时间: %Y-%m-%d %H:%M:%S", tmp);
        
        printf("%s\n", buf2);
        exit(0);
    }
    

    效果展示:

    在这里插入图片描述

    strftime函数的转换说明:

    在这里插入图片描述

    相关链接:

    1.c/c++ 获取当前时间 精确到毫秒或者秒

    展开全文
  • C/C++获取系统时间

    千次阅读 2019-02-21 14:18:16
    C++版本: #include &lt;iostream&gt; #include &lt;ctime&gt; int main() { time_t timer; time(&amp;timer); tm *t_tm = localtime(&amp;timer); int year = t_tm-&gt;tm_year ...

    方法一

    C++版本:

    #include <iostream>
    #include <ctime>
    int main()
    {
    	time_t timer;
    	time(&timer);
    	tm *t_tm = localtime(&timer);
    	
    	int year = t_tm->tm_year + 1900;//年
    	int month = t_tm->tm_mon + 1;//月
    	int day = t_tm->tm_mday;//日
    	int hour = t_tm->tm_hour;//时
    	int minute = t_tm->tm_min;//分
    	int second = t_tm->tm_sec;//秒
    	int wday = t_tm->tm_wday;//一周中的第几天
    	int yday = t_tm->tm_yday;//一年中的第几天
    	
    	std::cout << year << "/" << month << "/" << day << std:: endl;
    	std::cout << hour << ":" << minute << ":" << second << std::endl;
    	std::cout << wday << " " << yday << " " << std::endl;
    
    	/*直接输出时间*/
    	std::cout<<asctime(t_tm)<<std::endl;
    }
    

    C版本:C版本与C++相同,头文件改为 time.h 输出时改为printf()语句即可

    printf("%d/%d/%d \n",year,month,day);
    printf(%s\n", asctime(t_tm));
    

    方法二

    此方法时间可精确至毫秒

    #include <Windows.h>
    #include <iostream>
    int main()
    {
    	SYSTEMTIME sys;
    	GetLocalTime(&sys);
    	std::cout << sys.wYear << "/" << sys.wMonth << "/" << sys.wDay << std::endl;
    	std::cout << sys.wHour << ":" << sys.wMinute << ":" << sys.wSecond << ":" <<  sys.wMilliseconds << std::endl;
    }
    

    可输出的数据如下:
    在这里插入图片描述
    运用以上两个方法输出时间如下:
    在这里插入图片描述

    展开全文
  • c++获取系统时间精确到秒

    千次阅读 2017-11-23 10:45:06
    #include "time.h" #include "stdio.h" #include "stdlib.h" #include using namespace std; int main() { time_t now; struct tm *timenow; time(&now); timenow = localtime(&now);...cout tm_year+1900
  • C++获取系统时间,并输出

    千次阅读 2018-03-12 15:41:01
    #include &lt;time.h&gt; #include &lt;iostream&gt; #include &lt;cstdlib.h&gt; void getTime() { char ti[40]; time_t t = time(0); struct tm *p;... //当地时间转成结构体 ...
  • //gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间) struct tm * localtime(const time_t * timer); //localtime()函数是将日历时间转化为本地时间 结构体解析 struct tm { int tm.
  • C++获取系统本地时间函数localtime 和gmtime。 其中输出格式说明如下: %a 星期几的缩写 %A 星期几的全名  %b 月份名称的缩写 %B 月份名称的全名 %c 本地端日期时间较佳表示字符串 %d 用数字表示本月的第几天 (范围...
  • uint64_t sys_time=std::chrono::duration_cast<std::chrono::microseconds> (std::chrono::system_clock::now().time_since_epoch()).count(); int32_t time_second=sys_time / 1000000;...
  • 添加头文件 ...获取系统时间并转为string类型 // 获取当前时间,精确到秒 time_t currentTime = std::time(NULL); char chCurrentTime[64]; std::strftime(chCurrentTime, sizeof(chCurrentTim...
  • Windows下c++获取系统时间的三种方法

    千次阅读 2017-06-26 23:19:49
    CTime类的对象表示的时间是基于格林威治标准时间(GMT)的。 CTime表示的日期上限是3000年12月31日,下限是1970年1月1日 12:00:00 AM GMT。 构造和初始化:  CTime(__time64_t time);  以一个__time64_t...
  • C++获取系统时间1970年1月1日到现在的毫秒数
  • c/c++获取系统时间

    2012-10-02 23:40:34
    利用c/c++编程实现获取系统时间,制作日历或时钟
  • 文章目录其他类型转化为字符串获取系统时间GCC获取系统时间VSC++获取系统时间总结 其他类型转化为字符串 包含头文件#include<sstream> 使用对象 stringstream #include<iostream> #include<sstream...
  • #include &lt;stdio.h&gt; #include &lt;sys/timeb.h&gt; typedef unsigned long long ulong; ulong currentTimeMillisec(){ struct timeb tb; ftime(&amp;tb);...voi...
  • C++ 获取系统时间,精确到毫秒并转成标准日志显示形式 c++通过windows API获取系统当前时间 调用Windows API #include<windows.h> 通过系统API获取当前系统时间 SYSTEMTIME sysTime; GetLocalTime(&...
  • Windows下使用C++获取系统时间毫秒数

    千次阅读 2019-04-10 12:34:46
    为了与Java等其他语言对接,可以使用Windows SDK中的timeb.h获取系统时间。并通过stringstream拼接出想要的毫秒数,下面的方法得到的8个字节的无符号整数就是当前系统时间到1970年1月1日0点的毫秒数。在此记录下来...
  • C/C++获取当前系统时间的方法

    万次阅读 多人点赞 2018-06-04 15:13:10
    1、使用系统函数,并且可以修改系统时间#include...}备注:获取的为 小时:分钟:秒 信息2、获取系统时间(秒级),可以换算为年月日星期时分秒#include&lt;iostream&gt; #include&lt;time.h&gt; us...
  • Ubuntu C/C++ 获取系统时间

    千次阅读 2018-12-17 18:01:11
    使用OpenCV处理图像的时,可以...头文件获取图像处理时间。 #include <sys/time.h> Code Example: #include <stdio.h> #include <sys/time.h> int main(int argc, char **argv) { struc...
  • C++怎样获取当前系统时间

    千次阅读 2020-03-16 14:09:14
    1、调用cmd函数来获取当前时间2、识别系统API来获取当前时间3、直接获取系统时间 1、调用cmd函数来获取当前时间 这个模块并不是特别的麻烦,因为这种方法是直接使用cmd命令进行获取以及更改系统时间的一种方法, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,204
精华内容 74,081
关键字:

c++获取系统时间

c++ 订阅
友情链接: target_6.rar