Namespaces
Variants

std:: asctime

From cppreference.net
< cpp ‎ | chrono ‎ | c
헤더 파일에 정의됨 <ctime>
char * asctime ( const std:: tm * time_ptr ) ;

주어진 달력 시간을 std::tm 으로부터 다음의 고정된 25자 형식의 텍스트 표현으로 변환합니다: Www Mmm dd hh : mm : ss yyyy\n .

  • Www - time_ptr - > tm_wday 에서 가져온 3자리 영어 요일 약자로, Mon , Tue , Wed , Thu , Fri , Sat , Sun 중 하나입니다.
  • Mmm - time_ptr - > tm_mon 에서 가져온 3자리 영어 월 약자로, Jan , Feb , Mar , Apr , May , Jun , Jul , Aug , Sep , Oct , Nov , Dec 중 하나입니다.
  • dd - timeptr - > tm_mday 에서 가져온 2자리 일자로, sprintf 를 사용하여 % 2d 로 출력한 것처럼 표시됩니다.
  • hh - timeptr - > tm_hour 에서 가져온 2자리 시간으로, sprintf 를 사용하여 % .2d 로 출력한 것처럼 표시됩니다.
  • mm - timeptr - > tm_min 에서 가져온 2자리 분으로, sprintf 를 사용하여 % .2d 로 출력한 것처럼 표시됩니다.
  • ss - timeptr - > tm_sec 에서 가져온 2자리 초로, sprintf 를 사용하여 % .2d 로 출력한 것처럼 표시됩니다.
  • yyyy - timeptr - > tm_year + 1900 에서 가져온 4자리 연도로, sprintf 를 사용하여 % 4d 로 출력한 것처럼 표시됩니다.

* time_ptr 의 구성원 중 하나라도 정상 범위를 벗어나면 동작은 정의되지 않습니다.

time_ptr - > tm_year 이 나타내는 달력 연도가 4자리를 초과하거나 1000년 미만인 경우 동작은 정의되지 않습니다.

이 함수는 지역화를 지원하지 않으며, 개행 문자를 제거할 수 없습니다.

이 함수는 정적 저장소를 수정하며 스레드 안전하지 않습니다.

목차

매개변수

time_ptr - 출력할 시간을 지정하는 std::tm 객체에 대한 포인터

반환값

정적 null 종료 문자 문자열에 대한 포인터로, 날짜와 시간의 텍스트 표현을 담고 있습니다. 이 문자열은 std::asctime std::ctime 사이에서 공유될 수 있으며, 이러한 함수들 중 어느 하나가 호출될 때마다 덮어씌워질 수 있습니다.

참고 사항

이 함수는 정적 데이터에 대한 포인터를 반환하며 스레드 안전하지 않습니다. POSIX는 이 함수를 더 이상 사용하지 않도록 표시하고 로케일 의존적인 std::strftime 을 대신 사용할 것을 권장합니다. std::locale ("C") 에서는 std::strftime 형식 문자열 "%c \n " std::asctime 출력과 정확히 일치하는 반면, 다른 로케일에서는 형식 문자열 "%a %b %e %H:%M:%S %Y \n " 이 잠재적으로 더 가깝지만 항상 정확히 일치하지는 않는 결과를 생성할 수 있습니다.

POSIX는 출력 문자열이 25자를 초과하는 경우, timeptr->tm_wday 또는 timeptr->tm_mon 이 예상 범위를 벗어나는 경우, 또는 timeptr->tm_year INT_MAX - 1990 을 초과하는 경우에만 미정의 동작으로 제한합니다.

일부 구현에서는 timeptr - > tm_mday == 0 를 이전 달의 마지막 날을 의미하는 것으로 처리합니다.

예제

#include <ctime>
#include <iomanip>
#include <iostream>
int main()
{
    const std::time_t now = std::time(nullptr);
    for (const char* localeName : {"C", "en_US.utf8", "de_DE.utf8", "ja_JP.utf8"})
    {
        std::cout << "locale " << localeName << ":\n" << std::left;
        std::locale::global(std::locale(localeName));
        std::cout << std::setw(40) << "    asctime" << std::asctime(std::localtime(&now));
        // strftime output for comparison:
        char buf[64];
        if (strftime(buf, sizeof buf, "%c\n", std::localtime(&now)))
            std::cout << std::setw(40) << "    strftime %c" << buf;
        if (strftime(buf, sizeof buf, "%a %b %e %H:%M:%S %Y\n", std::localtime(&now)))
            std::cout << std::setw(40) << "    strftime %a %b %e %H:%M:%S %Y" << buf;
        std::cout << '\n';
    }
}

가능한 출력:

locale C:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         Wed Nov  4 00:45:01 2020
    strftime %a %b %e %H:%M:%S %Y       Wed Nov  4 00:45:01 2020
locale en_US.utf8:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         Wed 04 Nov 2020 12:45:01 AM UTC
    strftime %a %b %e %H:%M:%S %Y       Wed Nov  4 00:45:01 2020
locale de_DE.utf8:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         Mi 04 Nov 2020 00:45:01 UTC
    strftime %a %b %e %H:%M:%S %Y       Mi Nov  4 00:45:01 2020
locale ja_JP.utf8:
    asctime                             Wed Nov  4 00:45:01 2020
    strftime %c                         2020年11月04日 00時45分01秒
    strftime %a %b %e %H:%M:%S %Y       水 11月  4 00:45:01 2020

참고 항목

std::time_t 객체를 텍스트 표현으로 변환
(함수)
std::tm 객체를 사용자 지정 텍스트 표현으로 변환
(함수)
(C++11)
지정된 형식에 따라 날짜/시간 값을 서식화하고 출력
(함수 템플릿)
C documentation for asctime