Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/chrono/c/ctime"

From cppreference.com
< cpp‎ | chrono‎ | c
m (fmt, headers sorted)
 
(24 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{cpp/title| asctime}}
+
{{cpp/title|ctime}}
{{cpp/chrono/c/sidebar}}
+
{{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 object {{tt|time}} to a human-readable time format.  
+
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:
  
The resulting string has the following format:
+
{{source|Www Mmm dd hh:mm:ss yyyy\n}}
  
{{source|Www Mmm dd hh:mm:ss yyyy}}
+
* {{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.
  
*{{tt|Www}} - the day of the week (one of {{tt|Mon}}, {{tt|Tue}}, {{tt|Wed}}, {{tt|Thu}}, {{tt|Fri}}, {{tt|Sat}}, {{tt|Sun}}).
+
The function does not support localization.
*{{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
+
  
<!-- ======== -->
+
===Parameters===
{{params}}
+
{{par begin}}
{{param list begin}}
+
{{par|time|pointer to a {{lc|std::time_t}} object specifying the time to print}}
{{param list item | time | pointer to a {{rlpt|time_t}} object specifying the time to print}}
+
{{par end}}
{{param list end}}
+
  
<!-- ======== -->
+
===Return value===
{{returns}}
+
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 a static character string. The string is shared among {{rlpf|ctime}} and {{rlpf|asctime}} and is overwritten on each invocation.
+
===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 cpp
+
===Example===
|
+
{{example
  | code=
+
|code=
| output=
+
#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===
{{see also}}
+
{{dsc begin}}
{{dcl list begin}}
+
{{dsc inc|cpp/chrono/c/dsc asctime}}
{{dcl list template | cpp/chrono/c/dcl list asctime}}
+
{{dsc inc|cpp/chrono/c/dsc strftime}}
{{dcl list end}}
+
{{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

 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
 
C-style date and time utilities
Functions
Time manipulation
Format conversions
ctime
Constants
Types
(C++17)
 
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 of Mon, Tue, Wed, Thu, Fri, Sat, Sun).
  • Mmm - the month (one of Jan, 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) [edit]
converts a std::tm object to custom textual representation
(function) [edit]
(C++11)
formats and outputs a date/time value according to the specified format
(function template) [edit]
C documentation for ctime