Namespaces
Variants
Views
Actions

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

From cppreference.com
< cpp‎ | chrono‎ | c
m (Synopsis: " *" → "* " (for consistency))
 
(20 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{cpp/title| localtime}}
+
{{cpp/title|localtime}}
{{cpp/chrono/c/sidebar}}
+
{{cpp/chrono/c/navbar}}
{{ddcl | header=ctime |
+
{{ddcl|header=ctime|
std::tm* localtime( const std::time_t *time );
+
std::tm* localtime( const std::time_t* time );
 
}}
 
}}
  
Converts given time since epoch as {{c|std::time_t}} value into calendar time, expressed in local time.  
+
Converts given time since epoch as {{lc|std::time_t}} value into calendar time, expressed in local time.  
  
 
===Parameters===
 
===Parameters===
{{param list begin}}
+
{{par begin}}
{{param list item | time | pointer to a time_t object to convert}}
+
{{par|time|pointer to a {{lc|std::time_t}} object to convert}}
{{param list end}}
+
{{par end}}
  
 
===Return value===
 
===Return value===
 
+
Pointer to a static internal {{lc|std::tm}} object on success, or null pointer otherwise. The structure may be shared between {{lc|std::gmtime}}, {{lc|std::localtime}}, and {{lc|std::ctime}}, and may be overwritten on each invocation.
pointer to a static internal {{c|std::tm}} object on success, or {{c|NULL}} otherwise. The structure may be shared between {{c|std::gmtime}}, {{c|std::localtime}}, and {{c|std::ctime}}, and may be overwritten on each invocation.
+
  
 
===Notes===
 
===Notes===
 
This function may not be thread-safe.
 
This function may not be thread-safe.
  
POSIX requires that this function sets {{c|errno}} to {{c|EOVERFLOW}} if it fails because the argument is too large.
+
POSIX requires that this function sets {{lc|errno}} to {{lc|EOVERFLOW}} if it fails because the argument is too large.
 +
 
 +
[https://pubs.opengroup.org/onlinepubs/9699919799/functions/localtime.html POSIX specifies] that the timezone information is determined by this function as if by calling [https://pubs.opengroup.org/onlinepubs/9699919799/functions/tzset.html {{tt|tzset}}], which reads the environment variable {{c|TZ}}.
  
 
===Example===
 
===Example===
 
{{example
 
{{example
|
+
|code=
| code=
+
#include <iostream>
+
#include <iomanip>
+
 
#include <ctime>
 
#include <ctime>
 +
#include <iomanip>
 +
#include <iostream>
 +
#include <sstream>
 +
 
int main()
 
int main()
 
{
 
{
     std::time_t t = std::time(NULL);
+
    setenv("TZ", "/usr/share/zoneinfo/America/Los_Angeles", 1); // POSIX-specific
     std::cout << "UTC:  " << std::put_time(std::gmtime(&t), "%c %Z") << '\n'
+
              << "local: " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
+
    std::tm tm{}; // Zero initialise
 +
    tm.tm_year = 2020 - 1900; // 2020
 +
    tm.tm_mon = 2 - 1; // February
 +
    tm.tm_mday = 15; // 15th
 +
    tm.tm_hour = 10;
 +
    tm.tm_min = 15;
 +
    tm.tm_isdst = 0; // Not daylight saving
 +
     std::time_t t = std::mktime(&tm);  
 +
 +
     std::cout << "UTC:  " << std::put_time(std::gmtime(&t), "%c %Z") << '\n';
 +
    std::cout << "local: " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
 
}
 
}
| output=
+
|p=true
UTC:  Wed Dec 28 11:47:03 2011 GMT
+
|output=
local: Wed Dec 28 06:47:03 2011 EST
+
UTC:  Sat Feb 15 18:15:00 2020 GMT
 +
local: Sat Feb 15 10:15:00 2020 PST
 
}}
 
}}
  
 
===See also===
 
===See also===
{{dcl list begin}}
+
{{dsc begin}}
{{dcl list template | cpp/chrono/c/dcl list gmtime}}
+
{{dsc inc|cpp/chrono/c/dsc gmtime}}
{{dcl list end}}
+
{{dsc inc|c/chrono/dsc localtime}}
 +
{{dsc see c|c/chrono/localtime}}
 +
{{dsc end}}
  
[[fr:cpp/chrono/c/localtime]]
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
[[ja:cpp/chrono/c/localtime]]
+
[[zh:cpp/chrono/c/localtime]]
+

Latest revision as of 14:44, 9 September 2023

 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
 
 
C-style date and time utilities
Functions
Time manipulation
Format conversions
localtime
Constants
Types
(C++17)
 
Defined in header <ctime>
std::tm* localtime( const std::time_t* time );

Converts given time since epoch as std::time_t value into calendar time, expressed in local time.

Contents

[edit] Parameters

time - pointer to a std::time_t object to convert

[edit] Return value

Pointer to a static internal std::tm object on success, or null pointer otherwise. The structure may be shared between std::gmtime, std::localtime, and std::ctime, and may be overwritten on each invocation.

[edit] Notes

This function may not be thread-safe.

POSIX requires that this function sets errno to EOVERFLOW if it fails because the argument is too large.

POSIX specifies that the timezone information is determined by this function as if by calling tzset, which reads the environment variable TZ.

[edit] Example

#include <ctime>
#include <iomanip>
#include <iostream>
#include <sstream>
 
int main()
{
    setenv("TZ", "/usr/share/zoneinfo/America/Los_Angeles", 1); // POSIX-specific
 
    std::tm tm{}; // Zero initialise
    tm.tm_year = 2020 - 1900; // 2020
    tm.tm_mon = 2 - 1; // February
    tm.tm_mday = 15; // 15th
    tm.tm_hour = 10;
    tm.tm_min = 15;
    tm.tm_isdst = 0; // Not daylight saving
    std::time_t t = std::mktime(&tm); 
 
    std::cout << "UTC:   " << std::put_time(std::gmtime(&t), "%c %Z") << '\n';
    std::cout << "local: " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
}

Possible output:

UTC:   Sat Feb 15 18:15:00 2020 GMT
local: Sat Feb 15 10:15:00 2020 PST

[edit] See also

converts time since epoch to calendar time expressed as Universal Coordinated Time
(function) [edit]
converts time since epoch to calendar time expressed as local time
(function) [edit]
C documentation for localtime