programing

C - time_t를 YYY-MM-DD 형식의 문자열로 변환 HH:MM:SS

megabox 2023. 6. 18. 12:29
반응형

C - time_t를 YYY-MM-DD 형식의 문자열로 변환 HH:MM:SS

변환할 수 있는 방법이 있습니까?time_t아주std::string코드를 휴대용으로 유지하면서 자동으로 YYY-MM-DD HH:MM:SS 형식으로?

사용하다localtime변환하기 위해time_t아주struct tm사용할 수 있습니다.strftime원하는 데이터를 인쇄할 수 있습니다.

char buff[20];
time_t now = time(NULL);
strftime(buff, 20, "%Y-%m-%d %H:%M:%S", localtime(&now));

내 머리 속에서 당신의 유일한 진짜 옵션은 당신만의 루틴을 작성하거나 POSIX.1/C90에 정의된 ctime() 함수를 사용하는 것입니다. ctime()은 확실히 알아볼 가치가 있지만, 만약 당신의 날짜가 이미 올바른 시간대에 있지 않다면, 당신은 문제에 부딪힐 것입니다.

편집: 아래 제리가 언급한 현지 시간을 사용하는 것에 대해 생각하지 않았습니다.그것을 strtm으로 변환하면 그가 언급한 것과 strptime()을 포함하여 더 많은 가능성을 얻을 수 있습니다.

코드의 여러 지점에서 호출할 수 있는 기능을 갖고 싶다면 이 기능을 사용해 볼 수 있습니다.그것은 당신이 정말로 수락된 것으로 표시해야 하는 최고의 답변에 기초합니다.

#include <ctime>
#include <string>

std::string get_localtime() {
    char buffer[80];
    std::time_t now = std::time(nullptr);
    std::strftime(buffer, 80, "%Y-%m-%d-%H:%M:%S", localtime(&now));
    std::string result(buffer);
    return result;
}

이것이 누군가에게 도움이 되기를 바랍니다.

언급URL : https://stackoverflow.com/questions/3053999/c-convert-time-t-to-string-with-format-yyyy-mm-dd-hhmmss

반응형