diff --git a/vlib/time/time_nix.c.v b/vlib/time/time_nix.c.v index 81a49ec19d..2e204fa482 100644 --- a/vlib/time/time_nix.c.v +++ b/vlib/time/time_nix.c.v @@ -8,15 +8,16 @@ module time #include pub struct C.tm { - tm_sec int - tm_min int - tm_hour int - tm_mday int - tm_mon int - tm_year int - tm_wday int - tm_yday int - tm_isdst int + tm_sec int + tm_min int + tm_hour int + tm_mday int + tm_mon int + tm_year int + tm_wday int + tm_yday int + tm_isdst int + tm_gmtoff int } fn C.timegm(&C.tm) C.time_t diff --git a/vlib/time/time_test.v b/vlib/time/time_test.v index 473c599c75..ebf11d4b98 100644 --- a/vlib/time/time_test.v +++ b/vlib/time/time_test.v @@ -344,3 +344,16 @@ fn test_parse_three_letters_month() { tm_tm := time.parse_format(tm_s, format)! assert tm_tm.month == tm.month } + +fn test_tm_gmtoff() { + $if windows { + return + } $else { + rawtime := i64(0) // C.time_t{} + + C.time(&rawtime) // C.tm{} + + info := C.localtime(&rawtime) + assert info.tm_gmtoff == time.now().unix - time.utc().unix + } +}