在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)
相关用法
- C++ String转Integer用法及代码示例
- C++ String转int用法及代码示例
- C++ String转Integer Vector用法及代码示例
- C++ String转size_t用法及代码示例
- C++ String转Char Array用法及代码示例
- C++ String Assign()用法及代码示例
- C++ String Data()用法及代码示例
- C++ String Find()用法及代码示例
- C++ String append()用法及代码示例
- C++ String at()用法及代码示例
- C++ String back()用法及代码示例
- C++ String begin()用法及代码示例
- C++ String c_str()用法及代码示例
- C++ String capacity()用法及代码示例
- C++ String cbegin()用法及代码示例
- C++ String cend()用法及代码示例
- C++ String clear()用法及代码示例
- C++ String compare()用法及代码示例
- C++ String copy()用法及代码示例
- C++ String crbegin()用法及代码示例
- C++ String crend()用法及代码示例
- C++ String empty()用法及代码示例
- C++ String end()用法及代码示例
- C++ String erase()用法及代码示例
- C++ String find_first_not_of()用法及代码示例
注:本文由纯净天空筛选整理自mguru4c05q大神的英文原创作品 How to Convert String to Date in C++?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。