std:: asctime
|
헤더 파일에 정의됨
<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
|
|