support exporting timezone and account currency
This commit is contained in:
+22
-1
@@ -1,6 +1,9 @@
|
||||
package utils
|
||||
|
||||
import "time"
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
longDateTimeFormat = "2006-01-02 15:04:05"
|
||||
@@ -53,6 +56,24 @@ func ParseFromShortDateTime(t string, utcOffset int16) (time.Time, error) {
|
||||
return time.ParseInLocation(shortDateTimeFormat, t, timezone)
|
||||
}
|
||||
|
||||
// FormatTimezoneOffset returns "+/-HH:MM" format of timezone
|
||||
func FormatTimezoneOffset(timezone *time.Location) string {
|
||||
_, tzOffset := time.Now().In(timezone).Zone()
|
||||
tzMinutesOffset := tzOffset / 60
|
||||
|
||||
sign := "+"
|
||||
hourAbsOffset := tzMinutesOffset / 60
|
||||
minuteAbsOffset := tzMinutesOffset % 60
|
||||
|
||||
if hourAbsOffset < 0 {
|
||||
sign = "-"
|
||||
hourAbsOffset = -hourAbsOffset
|
||||
minuteAbsOffset = -minuteAbsOffset
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s%02d:%02d", sign, hourAbsOffset, minuteAbsOffset)
|
||||
}
|
||||
|
||||
// GetMinTransactionTimeFromUnixTime returns the minimum transaction time from unix time
|
||||
func GetMinTransactionTimeFromUnixTime(unixTime int64) int64 {
|
||||
return unixTime * 1000
|
||||
|
||||
@@ -60,6 +60,28 @@ func TestParseFromShortDateTime(t *testing.T) {
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestFormatTimezoneOffset(t *testing.T) {
|
||||
timezone := time.FixedZone("Test Timezone", 120*60)
|
||||
expectedValue := "+02:00"
|
||||
actualValue := FormatTimezoneOffset(timezone)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
timezone = time.FixedZone("Test Timezone", 345*60)
|
||||
expectedValue = "+05:45"
|
||||
actualValue = FormatTimezoneOffset(timezone)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
timezone = time.FixedZone("Test Timezone", -720*60)
|
||||
expectedValue = "-12:00"
|
||||
actualValue = FormatTimezoneOffset(timezone)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
|
||||
timezone = time.FixedZone("Test Timezone", 0)
|
||||
expectedValue = "+00:00"
|
||||
actualValue = FormatTimezoneOffset(timezone)
|
||||
assert.Equal(t, expectedValue, actualValue)
|
||||
}
|
||||
|
||||
func TestGetMinTransactionTimeFromUnixTime(t *testing.T) {
|
||||
expectedValue := int64(1617228083000)
|
||||
actualValue := GetMinTransactionTimeFromUnixTime(1617228083)
|
||||
|
||||
Reference in New Issue
Block a user