在 C++ 中,函数 std::get_time() 是一个标准库函数,用于将给定输入解析为作为参数传递的格式字符串中指定的日期和时间值。它将解析的时间存储在 tm 类型的对象中。
std::get_time() 在 C++ 的 <ctime> 标头内定义。
get_time() 的语法
get_time(tm* var, const CharT* format);
get_time()的参数
该函数接受两个参数:
- var:存储解析数据/时间的变量。
- format: 这是指定将作为输入输入的日期和时间的格式的字符串。
C++ 中 get_time() 的格式字符串
get_time() 的格式字符串有自己的一组规则,用于解析给定输入中的日期/时间数据。这些规则规定了不同的说明符来解析不同格式的日期/时间。下表列出了一些常见的说明符:
说明符 | 说明 |
---|---|
%一种 | 缩写工作日(例如 Mon、Tue) |
%一种 | 整个工作日(例如星期一、星期二) |
%b | 月份缩写(例如 Jan、Feb) |
%B | 完整月份(例如一月、二月) |
%C | 每月的某一天和工作日(例如 02 Mon)(不太常见) |
%C | 一年中工作日的计数(范围 00 到 53) |
%d | 月份中的第几天,2 位数字(范围 00 到 31) |
%D | 一年中的第几天,3 位数字(范围 000 到 366) |
%F | 相当于 %Y-%m-%d(ymd 的规范格式) |
%G | ISO 星期日期年份,不带世纪(范围 00 到 99) |
%G | ISO 周日期年份,包括世纪 |
%j | 相当于%D |
%m | 数字形式的月份(01 到 12) |
%M | 分钟(00 至 59) |
%q | 季度(01 至 04)(不太常见) |
%s | 自 1970 年 1 月 1 日起的秒数(时间戳) |
%u | 星期几(数字,星期日 = 1) |
%U | 周计数,一周中的某一天是周日(范围 00 到 53) |
%V | ISO 周计数,一周中的某一天是星期一(范围 01 到 53) |
%w | 星期几(数字,星期日 = 0) |
%W | 周计数,一周中的某一天是星期一(范围 00 到 53) |
%y | 没有世纪的年份(范围 00 到 99) |
%Y | 年份(包括世纪) |
%Z | 以小时和分钟为单位的区域偏移量 (HH:MM),带有前面的符号(+ 表示 UTC 以东的偏移量,- 表示 UTC 以西的偏移量) |
请参阅文档以获取更多说明符。
get_time()的返回值
该函数执行后不返回任何值。它只是将输入数据存储到给定的参数中。
C++ 中的 get_time() 示例
下面的程序演示了如何在 C++ 中使用 get_time() 函数:
// C++ program to demonstrate
// std::get_time() function in C++
#include <ctime>
#include <iomanip>
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
// Initialize a string stream
istringstream ss("01-01-2000 00:00:00");
// Declare a tm struct
tm time;
// Parse the date and time using get_time()
ss >> get_time(&time, "%d-%m-%Y %H:%M:%S");
// Print the date and time
cout << "Year: " << time.tm_year + 1900
<< "\nMonth: " << time.tm_mon + 1
<< "\nDay: " << time.tm_mday
<< "\nHour: " << time.tm_hour
<< "\nMinute: " << time.tm_min
<< "\nSecond: " << time.tm_sec;
return 0;
}
输出
Year: 2000 Month: 1 Day: 1 Hour: 0 Minute: 0 Second: 0
关于get_time()的要点
- 它用于将给定输入解析为作为参数传递的格式字符串中指定的日期和时间值。
- 格式字符串可以包含转换说明符、空白字符和普通字符(% 除外)。每个普通字符应该与输入流中的一个字符匹配。
- 每个转换规范都以 % 字符开头,可选地后跟 E 或 O 修饰符(如果区域设置不支持,则忽略该修饰符),然后后跟一个确定说明符行为的字符
- 格式说明符与 POSIX 函数的格式说明符相同
strptime()
.
相关用法
- C++ std::get_temporary_buffer用法及代码示例
- C++ std::generate用法及代码示例
- C++ std::generate_n用法及代码示例
- C++ std::greater_equal用法及代码示例
- C++ std::greater用法及代码示例
- C++ std::accumulate()用法及代码示例
- C++ std::binary_search()用法及代码示例
- C++ std::copy()用法及代码示例
- C++ std::copy_if()用法及代码示例
- C++ std::copy_n()用法及代码示例
- C++ std::fill()用法及代码示例
- C++ std::fill_n()用法及代码示例
- C++ std::find()用法及代码示例
- C++ std::find_first_of()用法及代码示例
- C++ std::for_each()用法及代码示例
- C++ std::lower_bound()用法及代码示例
- C++ std::max()用法及代码示例
- C++ std::max_element()用法及代码示例
- C++ std::min()用法及代码示例
- C++ std::min_element()用法及代码示例
- C++ std::minmax()用法及代码示例
- C++ std::next_permutation()用法及代码示例
- C++ std::nth_element()用法及代码示例
- C++ std::replace()用法及代码示例
- C++ std::replace_copy()用法及代码示例
注:本文由纯净天空筛选整理自佚名大神的英文原创作品 std::get_time() Function in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。