OPENSSL_gmtime.3ossl - Man Page

platform-agnostic OpenSSL time routines


 #include <openssl/crypto.h>

 struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result);
 int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec);
 int OPENSSL_gmtime_diff(int *pday, int *psec,
                        const struct tm *from, const struct tm *to);


OPENSSL_gmtime() returns the UTC time specified by timer into the provided result argument.

OPENSSL_gmtime_adj() adds the offsets in offset_day and offset_sec to tm.

OPENSSL_gmtime_diff() calculates the difference between from and to.


It is an error to call OPENSSL_gmtime() with result equal to NULL. The contents of the time_t given by timer are stored into the result. Calling with timer equal to NULL means use the current time.

OPENSSL_gmtime_adj() converts tm into a days and seconds value, adds the offsets, then converts back into a struct tm specified by tm. Leap seconds are not considered.

OPENSSL_gmtime_diff() calculates the difference between the two struct tm structures from and to. The difference in days is placed into *pday, the remaining seconds are placed to *psec. The value in *psec will be less than the number of seconds per day (3600). Leap seconds are not considered.

Return Values

OPENSSL_gmtime() returns NULL on error, or result on success.

OPENSSL_gmtime_adj() and OPENSSL_gmtime_diff() return 0 on error, and 1 on success.


OPENSSL_gmtime(), OPENSSL_gmtime_adj() and OPENSSL_gmtime_diff() have been in OpenSSL since 1.0.0.

Referenced By

The man pages OPENSSL_gmtime_adj.3ossl(3) and OPENSSL_gmtime_diff.3ossl(3) are aliases of OPENSSL_gmtime.3ossl(3).

2023-01-19 3.0.7 OpenSSL