구문 분석 할 문자열을 웹 서버에서받는 것으로 가정합니다. 이 문자열은 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