Programming/C&C++

c++ 에서 timestamp 문자열 생성하기 (yy-mm-dd hh:mm:ss.ms)

bemaru 2021. 8. 20. 00:03
반응형

 

#define _CRT_SECURE_NO_WARNINGS

#include <sstream>
#include <chrono>
#include <time.h>
#include <iomanip>
#include <iostream>

std::stringstream Timestamp()
{
    auto now = std::chrono::system_clock::now();
    std::time_t t = std::chrono::system_clock::to_time_t(now);
    auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();

    std::stringstream ss;
    ss << std::put_time(std::localtime(&t), "%F %T.") << std::setfill('0') << std::setw(3) << ms % 1000;
    return ss;
}

int main()
{
    std::cout << Timestamp().str() << std::endl;
    return 0;
}

 

출력 예시

2021-08-19 23:27:03.063

 

 

(milliseconds를 epoch 나머지로 직접 구하는 방법 말고는 없는걸까? 기본 제공되는 함수라던가)

 

반응형