mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-18 08:44:25 +08:00
add getting timezone offset method
This commit is contained in:
@@ -59,10 +59,17 @@ func ParseFromShortDateTime(t string, utcOffset int16) (time.Time, error) {
|
|||||||
return time.ParseInLocation(shortDateTimeFormat, t, timezone)
|
return time.ParseInLocation(shortDateTimeFormat, t, timezone)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetTimezoneOffsetMinutes returns offset minutes according specified timezone
|
||||||
|
func GetTimezoneOffsetMinutes(timezone *time.Location) int16 {
|
||||||
|
_, tzOffset := time.Now().In(timezone).Zone()
|
||||||
|
tzMinuteOffset := int16(tzOffset / 60)
|
||||||
|
|
||||||
|
return tzMinuteOffset
|
||||||
|
}
|
||||||
|
|
||||||
// FormatTimezoneOffset returns "+/-HH:MM" format of timezone
|
// FormatTimezoneOffset returns "+/-HH:MM" format of timezone
|
||||||
func FormatTimezoneOffset(timezone *time.Location) string {
|
func FormatTimezoneOffset(timezone *time.Location) string {
|
||||||
_, tzOffset := time.Now().In(timezone).Zone()
|
tzMinutesOffset := GetTimezoneOffsetMinutes(timezone)
|
||||||
tzMinutesOffset := tzOffset / 60
|
|
||||||
|
|
||||||
sign := "+"
|
sign := "+"
|
||||||
hourAbsOffset := tzMinutesOffset / 60
|
hourAbsOffset := tzMinutesOffset / 60
|
||||||
|
|||||||
@@ -53,6 +53,28 @@ func TestParseFromShortDateTime(t *testing.T) {
|
|||||||
assert.Equal(t, expectedValue, actualValue)
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetTimezoneOffsetMinutes(t *testing.T) {
|
||||||
|
timezone := time.FixedZone("Test Timezone", 120*60)
|
||||||
|
expectedValue := int16(120)
|
||||||
|
actualValue := GetTimezoneOffsetMinutes(timezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
timezone = time.FixedZone("Test Timezone", 345*60)
|
||||||
|
expectedValue = int16(345)
|
||||||
|
actualValue = GetTimezoneOffsetMinutes(timezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
timezone = time.FixedZone("Test Timezone", -720*60)
|
||||||
|
expectedValue = int16(-720)
|
||||||
|
actualValue = GetTimezoneOffsetMinutes(timezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
|
||||||
|
timezone = time.FixedZone("Test Timezone", 0)
|
||||||
|
expectedValue = int16(0)
|
||||||
|
actualValue = GetTimezoneOffsetMinutes(timezone)
|
||||||
|
assert.Equal(t, expectedValue, actualValue)
|
||||||
|
}
|
||||||
|
|
||||||
func TestFormatTimezoneOffset(t *testing.T) {
|
func TestFormatTimezoneOffset(t *testing.T) {
|
||||||
timezone := time.FixedZone("Test Timezone", 120*60)
|
timezone := time.FixedZone("Test Timezone", 120*60)
|
||||||
expectedValue := "+02:00"
|
expectedValue := "+02:00"
|
||||||
|
|||||||
Reference in New Issue
Block a user