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)
|
||||
}
|
||||
|
||||
// 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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user