解析Linux下的时间函数:设置以及获取时间的方法

 更新时间:2013年05月27日 09:24:12   作者:  
本篇文章是对Linux下的时间函数:设置以及获取时间的方法进行了详细的分析介绍,需要的朋友参考下
一、时间函数
复制代码 代码如下:

time_t time(time_t *t);
char *asctime(const struct tm *tm);
char *asctime_r(const struct tm *tm, char *buf);
char *ctime(const time_t *timep);
char *ctime_r(const time_t *timep, char *buf);
struct tm *gmtime(const time_t *timep); //获取的为英国时间
struct tm *gmtime_r(const time_t *timep, struct tm *result);
struct tm *localtime(const time_t *timep);      //获取的为本地时间,注意与英国时间的区别。
struct tm *localtime_r(const time_t *timep, struct tm *result);
time_t mktime(struct tm *tm);
double difftime(time_t time1, time_t time0);
int gettimeofday(struct timeval *tv, struct timezone *tz);
int settimeofday(const struct timeval *tv , const struct timezone *tz);

二、设置和获取时间
复制代码 代码如下:

#include <stdio.h>
#include <time.h>

int main(void)
{
time_t t1;
time_t t2;
struct tm *my_tm;
char buf[128] = {0};

//自Epoch (00:00:00 UTC, January 1,1970)的秒数
t1 = time(&t1);
printf("%d\n", t1);  //1355905754
t2 = time(&t2);

sleep(1);
printf("%lf\n", difftime(t2, t1));  //t1,t2相差:1.000000,有时候可以用这个函数来做伪定时器
printf("%s\n",ctime(&t1)); //Wed Dec 19 16:29:14 2012
     
//init tm
my_tm->tm_year = 2012-1900;
my_tm->tm_mon = 12-1;
my_tm->tm_mday = 12;
my_tm->tm_hour = 12;
my_tm->tm_min = 12;
my_tm->tm_sec = 12;
      //设置时间
t1 = mktime(my_tm);
//获取时间

my_tm = localtime(&t1);
sprintf(buf, "%04d-%02d-%02d  %02d:%02d:%02d",
my_tm->tm_year + 1900, my_tm->tm_mon + 1, my_tm->tm_mday, my_tm->tm_hour, my_tm->tm_min, my_tm->tm_sec);
printf("%s\n", buf);//2012-12-12  12:12:12

return 0;
}

相关文章

  • vsCode配置import@路径提示的实现步骤

    vsCode配置import@路径提示的实现步骤

    在导入文件设置路径的时候方便了很多,本文主要介绍了vsCode配置import@路径提示的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • C语言数据结构单链表接口函数全面讲解教程

    C语言数据结构单链表接口函数全面讲解教程

    这篇文章主要为大家介绍了C语言数据结构单链表所有接口函数的全面讲解教程,有需要朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-10-10
  • C++实现推箱子小游戏

    C++实现推箱子小游戏

    这篇文章主要为大家详细介绍了C++实现推箱子小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • C++中remove与erase区别小结

    C++中remove与erase区别小结

    remove函数和 erase函数都可以实现元素的删除,本文主要介绍了C++中remove与erase区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • C++ RAII在HotSpot VM中的重要应用解析

    C++ RAII在HotSpot VM中的重要应用解析

    RAII技术被认为是C++中管理资源的最佳方法,进一步引申,使用RAII技术也可以实现安全、简洁的状态管理,编写出优雅的异常安全的代码,这篇文章主要介绍了C++ RAII在HotSpot VM中的重要应用,需要的朋友可以参考下
    2023-09-09
  • 浅析c++函数参数和返回值

    浅析c++函数参数和返回值

    c++一直以来是一个关注效率的代码,这样关于函数的参数传递和返回值的接收,是重中之重,这篇文章主要介绍了c++函数参数和返回值,需要的朋友可以参考下
    2023-05-05
  • c++统计文件中字符个数代码汇总

    c++统计文件中字符个数代码汇总

    本文给大家汇总介绍了3种使用C++实现统计文件中的字符个数的方法,非常的简单实用,有需要的小伙伴可以参考下。
    2015-09-09
  • C语言实现生日贺卡

    C语言实现生日贺卡

    这篇文章主要为大家详细介绍了C语言实现生日贺卡的具体方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • C++删除链表中间节点的方法

    C++删除链表中间节点的方法

    这篇文章主要介绍了C++删除链表中间节点的方法,结合实例形式分析了链表删除中间节点的具体思路与实现技巧,需要的朋友可以参考下
    2017-05-05
  • C++ Boost PointerContainer智能指针详解

    C++ Boost PointerContainer智能指针详解

    智能指针是一种像指针的C++对象,但它能够在对象不使用的时候自己销毁掉。虽然STL提供了auto_ptr,但是由于不能同容器一起使用(不支持拷贝和赋值操作),因此很少有人使用。它是Boost各组件中,应用最为广泛的一个
    2022-11-11

最新评论