add getting timezone offset method

This commit is contained in:
MaysWind
2021-04-18 23:08:09 +08:00
parent f3381a3149
commit 08a0f615e4
2 changed files with 31 additions and 2 deletions
+9 -2
View File
@@ -59,10 +59,17 @@ func ParseFromShortDateTime(t string, utcOffset int16) (time.Time, error) {
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
func FormatTimezoneOffset(timezone *time.Location) string {
_, tzOffset := time.Now().In(timezone).Zone()
tzMinutesOffset := tzOffset / 60
tzMinutesOffset := GetTimezoneOffsetMinutes(timezone)
sign := "+"
hourAbsOffset := tzMinutesOffset / 60
+22
View File
@@ -53,6 +53,28 @@ func TestParseFromShortDateTime(t *testing.T) {
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) {
timezone := time.FixedZone("Test Timezone", 120*60)
expectedValue := "+02:00"