C++ 时间类型及相互转换详解 time

您所在的位置:网站首页 c语言时间转换函数是什么 C++ 时间类型及相互转换详解 time

C++ 时间类型及相互转换详解 time

2024-07-13 07:59| 来源: 网络整理| 查看: 265

时间常见的有两种存储方式: time_t :整数类型 用来存储从1970年到现在经过了多少秒 tm :结构类型 把日期和时间以 C 结构的形式保存,tm 结构的定义如下: 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 int tm_year; // 自 1900 年起的年数 int tm_wday; // 一周中的第几天,范围从 0 到 6,从星期日算起 int tm_yday; // 一年中的第几天,范围从 0 到 365,从 1 月 1 日算起 int tm_isdst; // 夏令时 }

#include #include int main() { time_t timep; time(&timep); /*获取time_t类型的当前时间*/ printf("%s", asctime(gmtime(&timep))); return 0; }

输出为UTC时间:

Thu Oct 25 01:49:20 2018

用gmtime将time_t类型的时间转换为struct tm类型的时间,按没有经过时区转换的UTC时间,然后再用asctime转换为我们常见的格式 Thu Oct 25 01:49:20 2018

修改时间输出格式:

#include #include int main() { char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; time_t timep; struct tm *p; time(&timep); /*获得time_t结构的时间,UTC时间*/ p = localtime(&timep); /*转换为struct tm结构的本地时间*/ printf("%d/%d/%d ", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday); printf("%s %d:%d:%d\n", wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec); return 0; }

输出为本地时间:

2018/10/25 Thu 09:49:20

常用时间函数: time_t time(time_t* t); //取得从1970年1月1日至今的秒数

char *asctime(const struct tm* timeptr); //将结构中的信息转换为真实世界的时间,以字符串的形式显示

char *ctime(const time_t* timep); //将timep转换为真是世界的时间,以字符串显示

struct tm* gmtime(const time_t* timep); //将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针

struct tm* localtime(const time_t* timep); //和gmtime类似,但是它是经过时区转换的时间

time_t mktime(struct tm* timeptr); //将struct tm 结构的时间转换为从1970年至今的秒数

C语言中,#include < time.h >

time_t timep; time(&timep); /* 获取 time_t 类型的当前时间 */

C++中,#include < ctime >

time_t now = time(0); // 基于当前系统的当前日期/时间

转换关系如下图: 转换关系



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3