blob: 9385f6196cf688b29260482163ced26ef337592a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// Package time contains functions to help work with date and time
package time
import (
"time"
"github.com/hairyhenderson/gomplate/v4/env"
)
// ZoneName - a convenience function for determining the current timezone's name
func ZoneName() string {
n, _ := zone()
return n
}
// ZoneOffset - determine the current timezone's offset, in seconds east of UTC
func ZoneOffset() int {
_, o := zone()
return o
}
func zone() (string, int) {
// re-read TZ env var in case it's changed since the process started.
// This may happen in certain rare instances when this is being called as a
// library, or in a test. It allows for a bit more flexibility too, as
// changing time.Local is prone to data races.
tz := env.Getenv("TZ", "Local")
loc, err := time.LoadLocation(tz)
if err != nil {
loc = time.Local
}
return time.Now().In(loc).Zone()
}
|