From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/c/chrono%2Flocaltime.html | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 devdocs/c/chrono%2Flocaltime.html (limited to 'devdocs/c/chrono%2Flocaltime.html') diff --git a/devdocs/c/chrono%2Flocaltime.html b/devdocs/c/chrono%2Flocaltime.html new file mode 100644 index 00000000..75756995 --- /dev/null +++ b/devdocs/c/chrono%2Flocaltime.html @@ -0,0 +1,72 @@ +

localtime, localtime_r, localtime_s

Defined in header <time.h>
struct tm *localtime  ( const time_t *timer );
+
(1)
struct tm *localtime_r( const time_t *timer, struct tm *buf );
+
(2) (since C23)
struct tm *localtime_s( const time_t *restrict timer, struct tm *restrict buf );
+
(3) (since C11)
+1) Converts given time since epoch (a time_t value pointed to by timer) into calendar time, expressed in local time, in the struct tm format. The result is stored in static storage and a pointer to that static storage is returned.
+2) Same as (1), except that the function uses user-provided storage buf for the result.
+3) Same as (1), except that the function uses user-provided storage buf for the result and that the following errors are detected at runtime and call the currently installed constraint handler function:
+
+
  • timer or buf is a null pointer
+
As with all bounds-checked functions, localtime_s only guaranteed to be available if __STDC_LIB_EXT1__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before including <time.h>.
+
+

Parameters

+ + +
timer - pointer to a time_t object to convert
buf - pointer to a struct tm object to store the result

Return value

+1) pointer to a static internal tm object on success, or null pointer otherwise. The structure may be shared between gmtime, localtime, and ctime and may be overwritten on each invocation.
+2-3) copy of the buf pointer, or null pointer on error (which may be a runtime constraint violation or a failure to convert the specified time to local calendar time)

Notes

The function localtime may not be thread-safe.

+

POSIX requires that localtime and localtime_r set errno to EOVERFLOW if it fails because the argument is too large.

+

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

+

The implementation of localtime_s in Microsoft CRT is incompatible with the C standard since it has reversed parameter order and returns errno_t.

+

Example

#define __STDC_WANT_LIB_EXT1__ 1
+#define _XOPEN_SOURCE // for putenv
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>   // for putenv
+ 
+int main(void)
+{
+    time_t t = time(NULL);
+    printf("UTC:       %s", asctime(gmtime(&t)));
+    printf("local:     %s", asctime(localtime(&t)));
+    // POSIX-specific
+    putenv("TZ=Asia/Singapore");
+    printf("Singapore: %s", asctime(localtime(&t)));
+ 
+#ifdef __STDC_LIB_EXT1__
+    struct tm buf;
+    char str[26];
+    asctime_s(str,sizeof str,gmtime_s(&t, &buf));
+    printf("UTC:       %s", str);
+    asctime_s(str,sizeof str,localtime_s(&t, &buf));
+    printf("local:     %s", str);
+#endif
+}

Possible output:

+
UTC:       Fri Sep 15 14:22:05 2017
+local:     Fri Sep 15 14:22:05 2017
+Singapore: Fri Sep 15 22:22:05 2017
+UTC:       Fri Sep 15 14:22:05 2017
+local:     Fri Sep 15 14:22:05 2017

References

See also

+ +
+
(C23)(C11)
converts time since epoch to calendar time expressed as Coordinated Universal Time (UTC)
(function)
C++ documentation for localtime
+

+ © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
+ https://en.cppreference.com/w/c/chrono/localtime +

+
-- cgit v1.2.3