package core import "core:sys/posix" import "core:time" // returns offset in seconds get_timezone_offset :: proc(datetime: time.Time) -> int { t := posix.time_t(time.to_unix_seconds(datetime)) tm: posix.tm posix.time(&t) posix.localtime_r(&t, &tm) return int(tm.tm_gmtoff) } new_time_with_seconds_offset :: proc(t: time.Time, seconds_offset: int) -> time.Time { return {_nsec = t._nsec + (i64(time.Second) * i64(seconds_offset))} } new_time_with_timezone_offset :: proc(t: time.Time) -> time.Time { return new_time_with_seconds_offset(t, get_timezone_offset(t)) }