C++ 日期和时间

C++ 日期和时间

在本文中,我们将学习C++中的日期和时间格式。C++中没有完整的日期和时间格式,所以我们从C语言中继承它。要在C++中使用日期和时间,需要在程序中添加头文件 <ctime>

<ctime>

这个头文件有四个与时间相关的类型,如下:

  • Clock_t – 表示时钟类型,是算术类型的别名。它表示时钟滴答数(以系统特定长度的时间单位计数)。Clock_t是由 clock()/. 返回的类型。
  • Time_t – 表示时间类型。它表示通过函数 time() 返回的时间。它以整数值输出,表示00:00小时经过的秒数。
  • Size_t – 是无符号整数类型的别名,表示以字节为单位的任何对象的大小。Size_t是 sizeof() 运算符的结果,用于打印大小和计数。
  • 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++中的日期和时间函数

函数名称 函数原型 函数描述
mktime time_t mktime(struct tm *time); 该函数将 mktime 转换为 time_t 或日历日期和时间。
ctime char *ctime(const time_t *time); 返回指向格式为“年 月 日 时:分:秒 年”的字符串的指针。
difftime double difftime ( time_t time2, time_t time1 ); 返回两个时间对象t1和t2之间的差值。
gmtime struct tm *gmtime(const time_t *time); 该函数以结构体的格式返回时间指针。时间以协调世界时(UTC)表示。
clock clock_t clock(void); 返回表示调用程序运行时间的近似值。如果不可用,则返回0.1。
localtime struct tm *localtime(const time_t *time); 该函数返回表示本地时间的tm结构指针。
time time_t time(time_t *time); 表示当前时间。
strftime size_t strftime(); 使用此函数,我们可以按特定的方式格式化日期和时间。
asctime char * asctime ( const struct tm * time ); 该函数将tm类型的对象转换为字符串,并返回字符串的指针。

打印当前日期和时间的示例

以下是以UTC格式打印当前日期和时间的示例。

代码

#include  
#include 


using namespace std;

int main()
{

    time_t now = time(0); // get current dat/time with respect to system

    char* dt = ctime(&now); // convert it into string

    cout << "The local date and time is: " << dt << endl; // print local date and time

    tm* gmtm = gmtime(&now); // for getting time to UTC convert to struct
    dt = asctime(gmtm);
    cout << "The UTC date and time is:" << dt << endl; // print UTC date and time
}

输出

The local date and time is: Wed Sep 22 16:31:40 2021

The UTC date and time is: Wed Sep 22 16:31:40 2021

下面的代码告诉了如何打破tm结构,并使用 – >运算符独立打印每个属性。

代码

#include 
#include 
using namespace std;

int main()
{
    time_t now = time(0); // get current date and time

    cout << "Number of seconds since January 1,2021 is:: " << now << endl;

    tm* ltm = localtime(&now);

    // print various components of tm structure.
    cout << "Year:" << 1900 + ltm->tm_year << endl; // print the year
    cout << "Month: " << 1 + ltm->tm_mon << endl; // print month number
    cout << "Day: " << ltm->tm_mday << endl; // print the day
    // Print time in hour:minute:second
    cout << "Time: " << 5 + ltm->tm_hour << ":";
    cout << 30 + ltm->tm_min << ":";
    cout << ltm->tm_sec << endl;
}

输出

Number of seconds since January 1,2021 is:: 1632328553
Year:2021
Month: 9
Day: 22
Time: 21:65:53

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程