c++ time_t

type

struct tm

<ctime>

Time structure

Structure containing a calendar date and time broken down into its components.

The structure contains nine members of type int, which are (in any order):

1
2
3
4
5
6
7
8
9
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;

而直接存储年月日的是一个结构:
struct tm
{
    int tm_sec;  /*秒,正常范围0-59, 但允许至61*/
    int tm_min;  /*分钟,0-59*/
    int tm_hour; /*小时, 0-23*/
    int tm_mday; /*日,即一个月中的第几天,1-31*/
    int tm_mon;  /*月, 从一月算起,0-11*/  1+p->tm_mon;
    int tm_year;  /*年, 从1900至今已经多少年*/ 1900+ p->tm_year;
    int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6*/
    int tm_yday; /*从今年1月1日到目前的天数,范围0-365*/
    int tm_isdst; /*日光节约时间的旗标*/
};

需要特别注意的是,年份是从1900年起至今多少年,而不是直接存储如2011年,月份从0开始的,0表示一月,星期也是从0开始的, 0表示星期日,1表示星期一。

The meaning of each is:

Member Meaning Range
tm_sec seconds after the minute 0-61*
tm_min minutes after the hour 0-59
tm_hour hours since midnight 0-23
tm_mday day of the month 1-31
tm_mon months since January 0-11real month = tm_mon + 1
tm_year years since 1900  1900+tm_year
tm_wday days since Sunday 0-6
tm_yday days since January 1 0-365
tm_isdst Daylight Saving Time flag  

The Daylight Saving Time flag (tm_isdst) is greater than zero if Daylight Saving Time is in effect, zero if Daylight Saving Time is not in effect, and less than zero if the information is not available.

tm_sec is generally 0-59. Extra range to accommodate for leap seconds in certain systems.

时间: 2024-10-11 07:49:23

c++ time_t的相关文章

浅谈C/C++的time_t函数

wordpress 博客链接:http://acmerbar.com/132.html 最近翻到<C专家编程>前言看到time_t函数,竟然一时之间全无概念,只是约莫知道是个有关时间的函数,这对已经学了C/C++的博主来说,简直是个嘲讽,本机测试了一下,大概是下面这个样子: #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #includ

时间操作(struct tm、time_t)

1.在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct tm {int tm_sec; /* 秒–取值区间为[0,59] */int tm_min; /* 分 - 取值区间为[0,59] */int tm_hour; /* 时 - 取值区间为[0,23] */int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */int tm_mon; /* 月份(从一月开始,0代表一月) - 取

time_t 和 tm 结构体

使用gmtime函数或localtime函数将time_t类型的时间日期转换为struct tm类型: 使用time函数返回的是一个long值,该值对用户的意义不大,一般不能根据其值确定具体的年.月.日等数据.gmtime函数可以方便的对time_t类型数据进行转换,将其转换为tm结构的数据方便数据阅读. gmtime函数的原型如下: struct tm *gmtime(time_t *timep); localtime函数的原型如下: struct tm *localtime(time_t *

time_t和struct tm之间的转换

time_t到struct tm的转换: #include <time.h> struct tm *localtime(const time_t *timep); struct tm到time_t的转换: #include <time.h> time_t mktime(struct tm *tm); time_t timep = time(NULL);可以获得从此刻距1970-01-01 00:00:00 +0000 (UTC)时间点的秒数. 示例程序: #include <

C专家编程读书笔记——time_t知识链接

time_t实际上是一个长整形的数据类型,用于记录从1970年1月1日0时0分0秒(UNIX出现的时间)起到当前一共多少秒的时间记录,然而对于time_t来说它表示的时间的最大值只能到2038 ,所以有一些厂商引入了64位甚至更长来保存时间. 我们通过查找头文件time.h来观察time_t的定义 #ifndef _TIME32_T_DEFINED typedef _W64 long __time32_t;   /* 32-bit time value */ #define _TIME32_T_

unix时间戳time_t与UTC时区的关系

一般我用C写unix时间戳是这样子的 #include<stdio.h> #include<time.h> void printfDateTimeStr(struct tm *stm){ char weekday[][4]={"天","一","二","三","四","五","六"}; printf("timestr=%04d-%02d

time.h time_t

#include <stdio.h> #include <stddef.h> #include <time.h> int main(void) { time_t timer;//time_t就是long int 类型 struct tm *tblock; //time()获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数, //其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNI

time_t和SYSTEMTIME之间的相互转换 【转】

time_t和SYSTEMTIME之间的相互转换 #include <ctime> /* **time_t转SYSTEMTIME */ SYSTEMTIME TimetToSystemTime(time_t t) { FILETIME ft; SYSTEMTIME pst; LONGLONG nLL = Int32x32To64(t, 10000000) + 116444736000000000; ft.dwLowDateTime = (DWORD)nLL; ft.dwHighDateTime

time_t与GMT格式互转

time_t Time::timeFromGMT(string gmt) { char week[4]; memset(week,0,4); char month[4]; memset(month,0,4); tm date; sscanf(gmt.c_str(),"%3s, %2d %3s %4d %2d:%2d:%2d GMT",week,&date.tm_mday,month,&date.tm_year,&date.tm_hour,&date.tm

程序猿之---C语言细节17(求time_t的最大值、strlen求的是长度、malloc分配字符内存细节、switch的中default细节)

主要内容:求time_t的最大值.strlen求的是长度.malloc分配字符内存细节.switch的中default细节 #include <stdio.h> #include <time.h> int main() {     /*****************************************************************         time_t最大值测试     ************************************