精华内容
下载资源
问答
  • linux获取时间
    千次阅读
    2021-05-12 00:50:12

    Linux获取毫秒级时间函数

    Moakapspa

    在软件设计中常常会用到关于时间的处理,用来计算语句、函数的执行时间,这时就须要精确到毫秒甚至是微妙的时间。设计

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

    int settimeofday(const struct timeval *tv, const struct timezone *tz);xml

    struct timeval {get

    time_t      tv_sec;     /* seconds */io

    suseconds_t tv_usec;    /* microseconds */class

    };软件

    struct timezone {程序

    int tz_minuteswest;     /* minutes west of Greenwich */

    int tz_dsttime;         /* type of DST correction */

    };

    下面是个简单的例子,用来统计程序的执行时间:

    struct timeval t_start,t_end;

    long cost_time = 0;

    //get start time

    gettimeofday(&t_start, NULL);

    printf("Start time: %ld us", t_start.tv_usec);

    //some operation

    //get end time

    gettimeofday(&t_end, NULL);

    printf("End time: %ld us", t_end.tv_usec);

    //calculate time slot

    cost_time = t_end.tv_usec - t_start.tv_usec;

    printf("Cost time: %ld us", cost_time);

    输出:

    Start time: 438061 us

    End time: 459867 us

    Cost time: 21806 us

    更多相关内容
  • Linux获取时间的方法

    千次阅读 2019-04-11 15:03:22
    统计了一下Linux C下获取时间的几种方法,如下: 0、以下代码所需头文件 # include # include # include # include # include 1、获取年月日时分秒 /* 获取年月日时分秒 */ void...

    统计了一下Linux C下获取时间的几种方法,如下:

    0、以下代码所需头文件

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <time.h>
    #include <sys/time.h>
    

    1、获取年月日时分秒

    /* 获取年月日时分秒 */
    void get_time_ymdhs()
    {
        time_t t;
        struct tm *p;
    
        time(&t);
        p = gmtime(&t);
    
        printf("%d\n", 1900 + p->tm_year); /* 年, p->tm_year是从1900年作为开始点, 例如今年是2019年,p->tm_year的值就是119, 所以加上1900 */
        printf("%d\n", 1 + p->tm_mon); /* 月, p->tm_mon的范围是0-11, 所以加1 */
        printf("%d\n", p->tm_mday); /* 日,p->tm_mday范围是1-31 */
        printf("%d\n", 8 + p->tm_hour); /* 时,获取的是世界时, 我们处于东八区,相差8个小时 */
        printf("%d\n", p->tm_min); /* 分 */
        printf("%d\n", p->tm_sec); /* 秒 */
        printf("%d\n", p->tm_yday); /* 从1月1日开始至今的天书,范围是0~365 */
    }
    

    gmtime获取世界时的时间,即格林威治(GMT)时间,所以要对时间加上时区的时差

    2、格式化输出年月日时分秒
    下面的几种方式是输出格式化过的时间,目前使用到的情况比较少

    /* 格式化时间字符串格式为:Www Mmm dd hh:mm:ss yyyy */
    void asctime_get_time()
    {
        time_t t;
        struct tm *p;
    
        time(&t);
        p = gmtime(&t);
    
        p->tm_hour += 8; /* 获取的是世界时,东八区要+8 */
    
        printf("%s\n", asctime(p));
    }
    
    /* 格式化时间字符串格式为:Www Mmm dd hh:mm:ss yyyy */
    void ctime_get_time()
    {
        time_t t;
        time(&t);
    
        printf("%s\n", ctime(&t)); /* 打印的是当前时区的时间 */
    }
    
    /* 格式化时间字符串格式为:Www Mmm dd hh:mm:ss yyyy */
    void localtime_get_time()
    {
        time_t t;
        struct tm *p;
    
        time(&t);
        p = localtime(&t); /* 获取的是当前时区的时间 */
    
        printf("%s\n", asctime(p));
    }
    

    3、多用于统计程序执行时间的几种时间获取方式

    /* 获取微秒级(百万分之一秒)时间 */
    void get_microsecond_time()
    {
        struct timeval tv;
        struct timezone tz;
        gettimeofday(&tv, &tz); /* tz一般传NULL */
    
        printf("sec: %ld\n", tv.tv_sec); /* 秒 */
        printf("usec: %ld\n", tv.tv_usec); /* 微秒 */
        printf("tz_minuteswest: %d\n", tz.tz_minuteswest); /* 格林威治时间往西方的时差,一般用不上 */
        printf("tz_dsttime: %d\n", tz.tz_dsttime); /* DST 时间的修正方式,一般用不上 */
    }
    
    /* 获取纳秒级(十亿分之一秒)时间 */
    void get_nanosecond_time()
    {
        struct timespec ts;
        clock_gettime(CLOCK_REALTIME, &ts);
    
        printf("sec: %ld\n", ts.tv_sec); /* 秒 */
        printf("nsec: %ld\n", ts.tv_nsec); /* 纳秒 */
    }
    

    时间单位换算如下:

    #define SECOND 1 /* 1秒 */
    #define MILLISECOND 1000 /* 1秒换算毫秒 */
    #define MICROSECOND 1000 * 1000 /* 1秒换算微秒 */
    #define NANOSECOND 1000 * 1000 * 1000 /* 1秒换算纳秒 */
    
    展开全文
  • Linux 获取系统时间

    千次阅读 2022-03-30 20:42:56
    很多时候,都需要获取Linux的系统时间,每次都是在网上去抄别人的,用完之后就往了。这次做个记录,方便自己以后查阅。 直接上代码: #include <stdio.h> #include <stdlib.h> #include <sys/time...

    很多时候,都需要获取Linux的系统时间,每次都是在网上去抄别人的,用完之后就往了。这次做个记录,方便自己以后查阅。

    直接上代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/time.h>
    #include <time.h>
    
    /*
     * 获取系统时间,这种方式获取得到的格式是: Wed Mar 30 20:41:21 2022
     */
    int printf_time(void)
    {
        time_t timep;
        time(&timep);
        char *s = ctime(&timep);
        printf("date:%s",s);
        return 0;
    }
    
    /*
     * 获取系统时间,这种方式获取得到的格式是: 2022-03-30 20:41:21.104
     */
    int get_time_ms(char *buff, int len)
    {
        struct timeval tv;
        struct tm* ptm;
        char time_string[40];
        long milliseconds;
    
        if(buff == NULL)
        {
            printf("%s buff is NULL.\n", __func__);
            return -1;
        }
    
        gettimeofday(&tv, NULL);
    
        ptm = localtime (&(tv.tv_sec));
    
        strftime (time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", ptm);  //输出格式为: 2022-03-30 20:38:37
        milliseconds = tv.tv_usec / 1000;
        snprintf (buff, len, "%s.%03ld", time_string, milliseconds);            //输出格式为: 2022-03-30 20:38:37.182
        return 0;
    }
     
    int main(int argc, const char **argv)
    {
        char buff[40];
        get_time_ms(buff, sizeof(buff));
        printf("time:%s\n", buff);
        printf_time();
        return 0;
    }

    上程序运行结果:

    time:2022-03-30 20:42:21.558
    date:Wed Mar 30 20:42:21 2022

    展开全文
  • LINUX 下C++ 获取系统时间和设置时间,是个类,已经测试通过,需要用管理员用户
  • 今天需要在应用程序获取系统的启动时间,百度了一下,通过sysinfo中的uptime可以计算出系统的启动时间。 2、sysinfo结构 sysinfo结构保持了系统启动后的信息,主要包括启动到现在的时间,可用内存空间、共享内存空间...
  • Linux 获取时间函数

    千次阅读 2018-09-14 20:18:39
    一、time 头文件: #include &lt;time.h&gt; 原型: time_t time(time_t *t) time_t的定义: typedef __darwin_time_t time_...返回值:UTC(coordinated universal time)时间1970年1月1日00时00分...

    一、time

    头文件:

    #include <time.h>

    原型:

    time_t time(time_t *t)

    time_t的定义:

    typedef __darwin_time_t  time_t; 
    typedef long __darwin_time_t;

    返回值:UTC(coordinated universal time)时间1970年1月1日00时00分00秒(也称为Linux系统的Epoch时间)到当前时刻的秒数

    例:1

    #include <stdio.h>
    #include <time.h>
    
    int main ()
    {
      time_t seconds;
    
      seconds = time(NULL);
      printf("自 1970-01-01 起的小时数 = %ld\n", seconds/3600);
      
      return(0);
    }

    二、localtime  localtime_r

    头文件:

    #include <time.h>

    原型:

    struct tm *localtime(const time_t *timep)

    原型:

    struct tm *localtime_r(const time_t *timep, struct tm *result);

    结构体tm

    struct tm {
       int tm_sec;    /* Seconds (0-60) */
       int tm_min;    /* Minutes (0-59) */
       int tm_hour;   /* Hours (0-23) */
       int tm_mday;   /* Day of the month (1-31) */
       int tm_mon;    /* Month (0-11) */
       int tm_year;   /* Year - 1900 */
       int tm_wday;   /* Day of the week (0-6, Sunday = 0) */
       int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */
       int tm_isdst;  /* Daylight saving time */ 
       /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/ 
    };

    localtime 与 localtime_r区别

     localtime 不是可重入 localtime_r 可重入

    例2:

    #include <cstdlib>
    #include <iostream>
    #include <time.h>
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        time_t tNow =time(NULL);
        time_t tEnd = tNow + 1800;
        //注意下面两行的区别
        struct tm* ptm = localtime(&tNow);
        struct tm* ptmEnd = localtime(&tEnd);
    
        char szTmp[50] = {0};
        strftime(szTmp,50,"%H:%M:%S",ptm);
        char szEnd[50] = {0};
        strftime(szEnd,50,"%H:%M:%S",ptmEnd);
    
        printf("%s /n",szTmp);
        printf("%s /n",szEnd);
        
        return 0;
    }

    最后出来的结果是:
    21:18:39
    21:18:39

    例3:

    #include <cstdlib>
    #include <iostream>
    #include <time.h>
    #include <stdio.h>
    
    
    int main(int argc, char *argv[])
    {
        time_t tNow =time(NULL);
        time_t tEnd = tNow + 1800;
    	
        struct tm ptm = { 0 };
        struct tm ptmEnd = { 0 };
        localtime_r(&tNow, &ptm);
        localtime_r(&tEnd, &ptmEnd);
        
        char szTmp[50] = {0};
        strftime(szTmp,50,"%H:%M:%S",&ptm);
        char szEnd[50] = {0};
        strftime(szEnd,50,"%H:%M:%S",&ptmEnd);
        printf("%s /n",szTmp);
        printf("%s /n",szEnd);
        
    
        return 0;
    }
    最后出来的结果是:
    10:29:06 
    10:59:06

    三、gettimeofday

    头文件:

    #include <sys/time.h>

    原型:

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

    tv:是保存获取时间结果的结构体

    struct timeval{
        long int tv_sec; // 秒数
        long int tv_usec; // 微秒数
    }

    tz:用于保存时区结果

    struct timezone{
    	int tz_minuteswest;/*格林威治时间往西方的时差*/
    	int tz_dsttime;/*DST 时间的修正方式*/
    }

    返回值:成功返回0,失败返回-1,错误代码保存于errno中

    四、mktime

    头文件:

    #include <time.h>

    原型:

    time_t mktime(struct tm *tm)

    返回值:1970年1月1日以来持续时间的秒数,发生错误时返回-1。

    例4:

    #include<stdio.h>
    #include<time.h>
    
    int main(void)
    {
        time_t timep;
        struct tm* p;
        time(&timep);
        printf("time():%d\n",timep);
        p=localtime(&timep);
        timep=mktime(p);
        printf("time()->localtime()->mktime():%d\n",timep);
        return 0;
    }

     

     

     

    展开全文
  • linux系统时间获取方式

    千次阅读 2021-01-17 16:08:18
    Linux 操作系统计算系统时间:主要函数:time localtime gmtime asctime ctime mktimedifftime strftime gmstrftime1.time()函数原型:time_t time(time_t * timer)功能:返回一个time_t类型的数据,表示从CUT时间1970...
  • linux 获取系统时间

    千次阅读 2021-02-20 15:00:32
    一、查看和修改Linux的时区 \1. 查看当前时区 命令 : "date -R" \2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" 方法 B 仅限于RedHat Linux 和 CentOS 命令 : "timeconfig"...
  • Linux 获取时间的方法

    千次阅读 2017-08-31 20:02:34
    时间的头文件 #include 关于时间的类型: time_t long 型,表示从1970年1月1日到现在经过的秒数。 struct tm {  int tm_sec; /* 秒 – 取值区间为[0,59] */  int tm_min; /* 分 - 取值区间为[0,59] */ ...
  • linux获取时间函数及计算时间差

    万次阅读 2014-12-10 18:20:46
    参考: ... 第一章 获取时间函数 1. char * asctime(const struct tm * timeptr);  函数说明  asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法,然
  • Linux C获取当前时间(精确到微秒)

    千次阅读 2021-11-11 11:25:51
    获取当前的时间的秒数和微秒数本方法需要用到gettimeofday()函数,该函数需要引入的头文件是 sys/time.h。 // sys/time.h struct timeval { long tv_sec; //秒 long tv_usec; //微秒 }; struct timezone { ...
  • Linux内核中获取当前时间

    千次阅读 2021-05-13 11:12:08
    它是非常不可能一个驱动会需要知道墙上时钟时间, 以月, 天, 和小时来表达的; 这个信息常常只对用户程序需要, 例如 cron和 syslogd. 处理真实世界的时间常常最好留给用户空间, 那里的 C 库提供了更好的支持; 另外,...
  • Linux命令获取以毫秒为单位的时间

    千次阅读 2021-05-12 10:25:11
    其他的答案很可能在...在Ubuntu这个工作到输出的时间以秒为小数,以微秒(包括尾随新行) sudo apt-get install adjtimex adjtimex -p | awk '/raw time:/ { print $6 }' 我不会做这在Ubuntu虽然。我会用date +%s%N
  • [Linux] Linux获取时间戳

    千次阅读 2021-12-08 16:20:03
    DEMO: #include<iostream> #include <stdlib.h> #include <stdio.h> #include <sys/time.h> #include <unistd.h> int main(){ struct timeval tv; gettimeofday(&... pri
  • 在日常工作中,有时候我们需要对时间做处理,这个时候就要能获取到系统当前时间 而且,关键时候要能精确到毫秒级别!不然精度不够!... } 以上就是C语言写的获取Linux系统当前时间!(精确到毫秒)
  • linux获取系统时间戳

    千次阅读 2020-11-30 11:41:20
    linux获取系统时间戳 #include<iostream> #include <stdlib.h> #include <stdio.h> #include <sys/time.h> #include <unistd.h> int main(){ struct timeval tv; gettimeofday(&...
  • 原文地址::... 相关文章 1、Linux获取系统时间,精确到毫秒----https://blog.csdn.net/tajon1226/article/details/103201935 2、Linux获取系统当前时间(精确到毫秒)----https://www.cnbl...
  • linux C用户态与内核态获取系统时间

    千次阅读 2021-12-28 09:30:15
    目前主要是使用获取从1970年1月1日之后的秒数。 用户态: struct timeval time = { .tv_sec=0, /*单位:s*/ .tv_nsec=0 /*单位:ns*/ }; unsigned long long int sec,usec = 0; clock_gettime(0, &...
  • Linux获取ms的时间

    千次阅读 2019-04-03 20:02:16
    void getCurrentTime(tm *iCurrentTime,long &iMilliSecond) { timeval tv; time_t timep; gettimeofday(&tv, NULL);//获取当下精确的s和us的时间 time(&timep);//获取从1...
  • Linux 获取毫秒级时间戳

    千次阅读 2021-04-26 23:59:35
    Linux 获取毫秒级时间戳   在Linux获取ms级别的时间戳,需要结合gettimeofday()以及localtime()函数。如下所示: #include <time.h> #include <sys/time.h> /* 日志时间戳,精确到毫秒 */ char* get_...
  • linux kernel 获取时间函数api

    千次阅读 2021-03-07 16:13:56
    最近在学习内核获取时间api函数,如下 内核态常用获取纳秒的函数。u64是unsigned long long类型的数据类型,打印用%llu。 u64 ktime_get_ns(void) u64 ktime_get_real_ns(void) u64 ktime_get_raw_ns(void) ...
  • linux c 获得当前时间精确到毫秒

    千次阅读 2022-03-11 14:45:57
    #include <sys/time.h> #include <stdio.h> #include <unistd.h> #include<iostream> using namespace std;...static string GetLocalTimeWithMs(void) ... int milli = curTime.
  • Linux 获取时间差精确到ms

    千次阅读 2015-12-08 13:41:23
    #! /bin/bash  #filename: test.sh  # arg1=start, arg2=end, format: %s.%N  function getTiming() {  ...# for debug..... time=$(( ( 10#$end_s - 10#$start_s ) * 1000 + ( 10...echo "时间差:${timediff}"
  • Linux下读取RTC时间

    2019-05-05 15:31:24
    可以在Linux系统下读取RTC芯片的内部时间,同时实现了读取系统内部自身时间的功能。亲测在Ubuntu下可用!
  • 截取时间从左往右数第23位,以下是截取到第三位毫秒 date +%Y-%m-%d’ '%H:%M:%S.%N | cut -b 1-23
  • linux 获取当前时间,精确到毫秒

    万次阅读 2018-06-07 17:27:32
    linux获取当前系统时间,代码如下:void sysTime(void) { struct timeval tv; struct timezone tz; struct tm *t; gettimeofday(&amp;tv, &amp;tz); t = localtime(&amp;tv.tv_sec); printf...
  • linux在shell中获取时间

    千次阅读 2021-05-15 07:41:26
    获得当天的日期date +%Y-%m-%d输出: 2011-07-28将当前日期赋值给DATE变量DATE=$(date +%Y%m%d)有时候我们需要使用今天之前或者往后的日期,这时可以使用date的 -d参数获取明天的日期date -d next-day +%Y%m%d获取...
  • C++ linux获取系统时间

    万次阅读 2017-06-28 21:13:15
    C++ linux获取系统时间
  • linux获取当前时间小总结

    千次阅读 2017-04-05 15:11:50
    // 获取当前时间 返回1970年0点到现在的秒数 ptr=localtime(&tim); // ptr结构体是time.h中定义的分别用于存储时间各个量的 //下面两种方式以本地字符串的方式打印 printf("%s",asctime(ptr)); printf("%s",...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 510,176
精华内容 204,070
关键字:

linux获取时间

友情链接: 贪吃蛇.rar