当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ String转Date用法及代码示例


在C++中,我们一般以std::tm类型的对象的形式存储日期和时间数据。有时,这些数据存储在字符串对象内,我们需要将其转换为 tm 类型以进行进一步处理。在本文中,我们将学习如何在 C++ 中将字符串转换为日期。

例子:

Input:
dateString = "2024-03-14";

Output:
Date: Thu Mar 14 00:00:00 2024

在 C++ 中将字符串转换为日期

要转换一个标准::字符串日期在C++中,我们可以使用std::stringstream 类与std::get_time()中提供的函数<iomanip>一个解析字符串流的库,将其内容解释为日期和时间规范以填充tm结构。

get_time() 的语法

ss >> get_time(&tm, "%Y-%m-%d");

这里,

  • ss是要转换为日期的字符串流。
  • "%Y-%m-%d"是字符串中日期的格式。
  • tm是个tm结构来存储日期。

将字符串转换为日期的 C++ 程序

下面的程序演示了如何使用将字符串转换为日期std::get_time()C++ 中的函数。

// C++ program to illustrate how to convert string to date
#include <ctime>
#include <iomanip>
#include <iostream>
#include <sstream>
using namespace std;

int main()
{
    // Define a string representing a date
    string dateString = "2024-03-14";

    // Initialize a tm structure to hold the parsed date
    tm tm = {};

    // Create a string stream to parse the date string
    istringstream ss(dateString);

    // Parse the date string using std::get_time
    ss >> get_time(&tm, "%Y-%m-%d");

    // Check if parsing was successful
    if (ss.fail()) {
        cout << "Date parsing failed!" << endl;
        return 1;
    }

    // Convert the parsed date to a time_t value
    time_t date = mktime(&tm);

    // Output the parsed date using std::asctime
    cout << "Date: " << asctime(localtime(&date));

    return 0;
}

输出
Date: Thu Mar 14 00:00:00 2024

时间复杂度:O(N),这里N是日期字符串的长度。
辅助空间:复杂度(1)




相关用法


注:本文由纯净天空筛选整理自mguru4c05q大神的英文原创作品 How to Convert String to Date in C++?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。