Difference between revisions of "cpp/chrono/c/ctime"
Andreas Krug (Talk | contribs) m (fmt, headers sorted) |
|||
(24 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | {{cpp/title| | + | {{cpp/title|ctime}} |
− | {{cpp/chrono/c/ | + | {{cpp/chrono/c/navbar}} |
− | {{ddcl | header=ctime | | + | {{ddcl|header=ctime| |
− | char *ctime( const time_t *time ); | + | char* ctime( const std::time_t* time ); |
}} | }} | ||
− | Converts given calendar time | + | Converts given time since epoch to a calendar local time and then to a textual representation, as if by calling {{c|std::asctime(std::localtime(time))}}. The resulting string has the following format: |
− | + | {{source|Www Mmm dd hh:mm:ss yyyy\n}} | |
− | {{ | + | * {{tt|Www}} - the day of the week (one of {{tt|Mon}}, {{tt|Tue}}, {{tt|Wed}}, {{tt|Thu}}, {{tt|Fri}}, {{tt|Sat}}, {{tt|Sun}}). |
+ | * {{tt|Mmm}} - the month (one of {{tt|Jan}}, {{tt|Feb}}, {{tt|Mar}}, {{tt|Apr}}, {{tt|May}}, {{tt|Jun}}, {{tt|Jul}}, {{tt|Aug}}, {{tt|Sep}}, {{tt|Oct}}, {{tt|Nov}}, {{tt|Dec}}). | ||
+ | * {{tt|dd}} - the day of the month. | ||
+ | * {{tt|hh}} - hours. | ||
+ | * {{tt|mm}} - minutes. | ||
+ | * {{tt|ss}} - seconds. | ||
+ | * {{tt|yyyy}} - years. | ||
− | + | The function does not support localization. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ===Parameters=== | |
− | + | {{par begin}} | |
− | {{ | + | {{par|time|pointer to a {{lc|std::time_t}} object specifying the time to print}} |
− | {{ | + | {{par end}} |
− | {{ | + | |
− | + | ===Return value=== | |
− | {{ | + | Pointer to a static null-terminated character string holding the textual representation of date and time. The string may be shared between {{lc|std::asctime}} and {{tt|std::ctime}}, and may be overwritten on each invocation of any of those functions. |
− | pointer to | + | ===Notes=== |
+ | This function returns a pointer to static data and is not thread-safe. In addition, it modifies the static {{lc|std::tm}} object which may be shared with {{lc|std::gmtime}} and {{lc|std::localtime}}. POSIX marks this function obsolete and recommends {{lc|std::strftime}} instead. | ||
− | + | The behavior may be undefined for the values of {{lc|std::time_t}} that result in the string longer than 25 characters (e.g. year 10000). | |
− | {{example | + | |
− | + | ===Example=== | |
− | + | {{example | |
− | | | + | |code= |
− | + | #include <cassert> | |
+ | #include <cstring> | ||
+ | #include <ctime> | ||
+ | #include <iostream> | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | std::time_t result = std::time(nullptr); | ||
+ | std::cout << std::ctime(&result); | ||
+ | |||
+ | char buffer[32]; | ||
+ | std::strncpy(buffer, std::ctime(&result), 26); | ||
+ | assert('\n' == buffer[std::strlen(buffer) - 1]); | ||
+ | std::cout << buffer; | ||
+ | } | ||
+ | |p=true | ||
+ | |output= | ||
+ | Mon Oct 11 17:10:55 2021 | ||
+ | Mon Oct 11 17:10:55 2021 | ||
}} | }} | ||
− | + | ===See also=== | |
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/chrono/c/dsc asctime}} |
− | {{ | + | {{dsc inc|cpp/chrono/c/dsc strftime}} |
− | {{ | + | {{dsc inc|cpp/io/manip/dsc put_time}} |
+ | {{dsc see c|c/chrono/ctime}} | ||
+ | {{dsc end}} | ||
+ | |||
+ | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 22:19, 19 August 2023
Defined in header <ctime>
|
||
char* ctime( const std::time_t* time ); |
||
Converts given time since epoch to a calendar local time and then to a textual representation, as if by calling std::asctime(std::localtime(time)). The resulting string has the following format:
Www Mmm dd hh:mm:ss yyyy\n
-
Www
- the day of the week (one ofMon
,Tue
,Wed
,Thu
,Fri
,Sat
,Sun
). -
Mmm
- the month (one ofJan
,Feb
,Mar
,Apr
,May
,Jun
,Jul
,Aug
,Sep
,Oct
,Nov
,Dec
). -
dd
- the day of the month. -
hh
- hours. -
mm
- minutes. -
ss
- seconds. -
yyyy
- years.
The function does not support localization.
Contents |
[edit] Parameters
time | - | pointer to a std::time_t object specifying the time to print |
[edit] Return value
Pointer to a static null-terminated character string holding the textual representation of date and time. The string may be shared between std::asctime and std::ctime
, and may be overwritten on each invocation of any of those functions.
[edit] Notes
This function returns a pointer to static data and is not thread-safe. In addition, it modifies the static std::tm object which may be shared with std::gmtime and std::localtime. POSIX marks this function obsolete and recommends std::strftime instead.
The behavior may be undefined for the values of std::time_t that result in the string longer than 25 characters (e.g. year 10000).
[edit] Example
#include <cassert> #include <cstring> #include <ctime> #include <iostream> int main() { std::time_t result = std::time(nullptr); std::cout << std::ctime(&result); char buffer[32]; std::strncpy(buffer, std::ctime(&result), 26); assert('\n' == buffer[std::strlen(buffer) - 1]); std::cout << buffer; }
Possible output:
Mon Oct 11 17:10:55 2021 Mon Oct 11 17:10:55 2021
[edit] See also
converts a std::tm object to a textual representation (function) | |
converts a std::tm object to custom textual representation (function) | |
(C++11) |
formats and outputs a date/time value according to the specified format (function template) |
C documentation for ctime
|