假設我從Web服務器接收到要解析的字符串。該字符串包含格式爲YYYY-MM-DD
的日期。 我想要的是將其轉換爲表示當天開始的時間戳,因此我不需要秒,分鐘和小時。解析日期字符串以從時間戳中刪除小時,分鐘和秒
作爲一個虛擬示例,我試圖提取當前日期的時間戳,一旦轉換爲YYYY-MM-DD
格式。下面的代碼:
#include <chrono>
#include <iomanip>
#include <iostream>
#include <sstream>
int main()
{
// Current time at GMT
std::time_t now = std::time(0);
std::tm *now_tm = std::gmtime(&now);
std::ostringstream oss;
// Extract yyyy-mm-dd = %F
oss << std::put_time(now_tm, "%F");
// Use oss to get a date without seconds from
// current time at gmt
std::tm tm;
std::istringstream ss(oss.str());
ss >> std::get_time(&tm, "%F");
std::time_t current_date = std::mktime(&tm);
std::cout << oss.str() << std::endl;
std::cout << "cd: " << current_date << std::endl;
return 0;
}
輸出是:
2017-10-19
cd: 1908337984324104
提取的時間戳顯然是錯誤的。使用%F
格式解析2017-10-19
字符串時問題出在哪裏?
非常感謝!我正在查看另一個時間格式化函數的文檔,猜測它會是一樣的。我錯了。 – nessuno