c++中的日期和时间

C++ 标准库没有提供一个合适的日期类型。C++ 从 C 中继承了针对日期和时间的结构和功能,为了访问与日期
和时间相关的功能和结构,需要在 C++ 程序中包括 <ctime> 头文件。
这里有四个与时间相关的类型:clock_t、time_t、size_t clock_t、time_t、size_t 和 tm tm。clock_t,size_t 和 time_t 类型能够以某种类
型的整数表示系统时间和日期。
结构类型 tm tm 以 C 结构体的形式支持日期和时间,有以下元素:
struct tm { int tm_sec;   // seconds of minutes from 0 to 61 int tm_min;   // minutes of hour from 0 to 59 int tm_hour;  // hours of day from 0 to 24 int tm_mday;  // day of month from 1 to 31 int tm_mon;   // month of year from 0 to 11 int tm_year;  // year since 1900 int tm_wday;  // days since sunday int tm_yday;  // days since January 1st int tm_isdst; // hours of daylight savings time }
以下是我们在 C 或 C++ 中处理日期和时间时使用的一些重要的函数。所有这些函数都是标准 C 和 C++ 库的一
部分,你可以使用下面给出的 C++ 标准库引用查看它们的使用细节。
序 序 号 号 功能与目的 功能与目的 1 time_t time(time_t *time); time_t time(time_t *time); 这将返回当前系统的日历时间,以自 1970 年 1 月 1 日开始系统运行秒数的形式。如果系统没有时间,返回 1。 2 char *ctime(const time_t *time); char *ctime(const time_t *time); 这返回一个指向字符串的指针,字符串形式为 day month year hours:minutes:seconds year\n\0 。 3 struct tm *localtime(const time_t *time); struct tm *localtime(const time_t *time); 这将返回一个指向 tm tm 结构体的指针,tm tm 结构体代表当地时间。 4 clock_t clock(void); clock_t clock(void); 这将返回一个与被调用程序运行时间的总和接近的值。如果时间无效,返回 1。 5 char * asctime ( const struct tm * time ); char * asctime ( const struct tm * time ); 这将返回一个指向字符串的指针,该字符串包含的信息以如下结构体存储,结构体形式如下: day month ye ar hours:minutes:seconds year\n\0 6 struct tm *gmtime(const time_t *time); struct tm *gmtime(const time_t *time); 它返回一个指向时间的指针,该时间是 tm 结构的。时间用协调世界时(UTC)表示,在本质上是格林威治标 准时间(GMT)。
第 1 章 C++ 基础 | 66
7 time_t mktime(struct tm *time); time_t mktime(struct tm *time); 返回日历时间,时间以参数中指出的结构形式表示。 8 double difftime ( time_t time2, time_t time1 ); double difftime ( time_t time2, time_t time1 ); 这个函数计算秒 time1 和 time2 之间的差异。 9 size_t strftime(); size_t strftime(); 这个函数可以用于以一种特定格式来格式化日期和时间。
当前的日期和时间 当前的日期和时间
考虑你想要取得当前系统的日期和时间,作为当地时间或作为一个协调世界时(UTC)。下面是一个实现相同目

的的示例

#include<iostream>
#include<ctime>
using namespace std;
int main(){
	time_t now=time(0);//根据当前系统当前日期/时间
	char*dt=ctime(&now);//现在转换为字符串形式
	cout<<dt<<endl;
	tm*gmtm=gmtime(&now);//现在转换为UTC tm结构
	dt=asctime(gmtm );
	cout<<dt<<endl;
	system("pause");
}
输出结果:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值