[英]Convert time-string to std::time_t using std::get_time: wrong result
[英]using get_time to parse string, part of the format doesn't seem to register
我正在嘗試用格式解析一串日期
seconds:minutes:hour:dayInMonth:month:year
例如: 58:48:20:12:8:1905
在這段代碼中:
struct std::tm time{};
std::istringstream stream(timeString);
stream >> std::get_time(&time, "%S:%M:%H:%d:%m:%Y");
timeString
值是時間值,我已經檢查過它是否符合我的預期。
get_time()
將seconds:minutes:hour:dayInMonth
的值正確地放入time
變量中,但month:year
值未被解析並在變量中保持為 0。
我試過其他格式,例如%mm:%YYYY
,但沒有解決問題。
這看起來像是 GCC 和 Clang 的問題。它適用於 MSVC。 請看一下這個例子。
通過 0 填充您的月份(即58:48:20:12:08:1905
),所有實現都將正確解析您的時間字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.