浅谈C/C++的time_t函数
来源:互联网 发布:末日拾荒者 知乎 编辑:程序博客网 时间:2024/06/06 01:22
wordpress 博客链接:http://acmerbar.com/132.html
最近翻到《C专家编程》前言看到time_t函数,竟然一时之间全无概念,只是约莫知道是个有关时间的函数,这对已经学了C/C++的博主来说,简直是个嘲讽,本机测试了一下,大概是下面这个样子:
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <time.h>using namespace std;/*常用的时间函数: *////将结构中的信息转换为真实世界的时间,以字符串的形式显示char *asctime(const struct tm* timeptr);///将timep转换为真实世界的时间,以字符串的形式显示,和asctime传入参数不一样char *ctime(const time_t *timep);///返回两个时间差的秒数double difftime(time_t time1, time_t time2);///返回当前距离1970年的秒数和微妙数,后面的tz是时区,一般不用int get_time_of_day(struct timeval *tv,struct timezone *tz);///将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针struct tm* gmtime(const time_t *timep);///和gmtime类似,但是它是经过时区转换的时间。struct tm* localtime(const time_t *timpe);///将struct tm 结构的时间转换为从1970年至今的秒数time_t mktime(struct tm* timeptr);///取得从1970年1月1日至今的秒数。time_t time(time_t *t);int main(){ /*运行程序用系统命令date显示本机时间为: Thu Nov 26 12:53:13 2015*/ time_t biggest= 0x7fffffff; /// time_t所能表示的最大值 printf("biggest= %s \n", ctime(&biggest)); printf("biggest= %s \n", asctime(gmtime(&biggest))); /* 输出: biggest= Tue Jan 19 11:14:07 2038 biggest= Tue Jan 19 03:14:07 2038 我们发现整整差了8个小时,这是因为ctime()函数把参数转换为当地时间,跟世界统一时间UTC(格林尼治时间)并不一样 取决于所在的时区,参照上面函数说明可以知道: gmtime()函数是将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针 */ /*可以测试一下下面两个例子*/ time_t timep; time(&timep); ///获取time_t类型的当前时间 printf("%s\n", asctime( gmtime(&timep))); /// 输出: Thu Nov 26 04:44:40 2015 ///没有经过时区转换的UTC时间 time_t timep; time(&timep); printf("%s\n", ctime(&timep)); ///输出: Thu Nov 26 12:53:13 2015 ///经过时区转换的UTC时间 return 0;}经过其他测试,我们可以总结:
time,gmtime,asctime 所表示的时间都是UTC时间,只是数据类型不一样;
而localtime,ctime 所表示的时间都是经过时区转换后的时间,它和你用系统命令date所表示的CST时间应该保持一致。
2 0
- 浅谈C/C++的time_t函数
- Linux C时间函数 time_t struct tm
- C语言时间函数time_t格式化打印...
- 浅谈C的函数应用
- c 语音中time_t 的介绍
- c++builder中TDateTime与c中time_t的转换
- C++【浅谈虚析构函数】
- [C++]浅谈构造函数
- [C++]浅谈reverse_iterator的base()函数
- 浅谈Objective-C的方法与函数
- C语言中time_t详解
- C/C++中time_t、tm、字符串之间的转换
- C++struct tm 和 time_t 时间和日期的使用方法
- 浅谈构造函数(c#)
- 浅谈之C语言函数
- C语言的浅谈!
- 浅谈C的printf
- 浅谈C的scanf
- 杰青、长江、973、青年973、优青、青千
- HD_2037今年暑假不AC
- 首字母变大写
- hdu 1392 凸包问题
- WEBLOGIC在AIX环境下的安装、配置和启动
- 浅谈C/C++的time_t函数
- pxelinux.0
- linux 根据当前日期获取上个季度的第一天和最后一天
- 一个完整的猫眼程序
- 最长上升子序列O(nlogn)
- 深度优先遍历
- uva 11400——Lighting System Design
- Session的策略
- 生成一个螺旋数组