git.sr.ht/~pingoo/stdx@v0.0.0-20240218134121-094174641f6e/toml/internal/tz.go (about) 1 package internal 2 3 import "time" 4 5 // Timezones used for local datetime, date, and time TOML types. 6 // 7 // The exact way times and dates without a timezone should be interpreted is not 8 // well-defined in the TOML specification and left to the implementation. These 9 // defaults to current local timezone offset of the computer, but this can be 10 // changed by changing these variables before decoding. 11 // 12 // TODO: 13 // Ideally we'd like to offer people the ability to configure the used timezone 14 // by setting Decoder.Timezone and Encoder.Timezone; however, this is a bit 15 // tricky: the reason we use three different variables for this is to support 16 // round-tripping – without these specific TZ names we wouldn't know which 17 // format to use. 18 // 19 // There isn't a good way to encode this right now though, and passing this sort 20 // of information also ties in to various related issues such as string format 21 // encoding, encoding of comments, etc. 22 // 23 // So, for the time being, just put this in internal until we can write a good 24 // comprehensive API for doing all of this. 25 // 26 // The reason they're exported is because they're referred from in e.g. 27 // internal/tag. 28 // 29 // Note that this behaviour is valid according to the TOML spec as the exact 30 // behaviour is left up to implementations. 31 var ( 32 localOffset = func() int { _, o := time.Now().Zone(); return o }() 33 LocalDatetime = time.FixedZone("datetime-local", localOffset) 34 LocalDate = time.FixedZone("date-local", localOffset) 35 LocalTime = time.FixedZone("time-local", localOffset) 36 )