在 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++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。