support exporting timezone and account currency

This commit is contained in:
MaysWind
2021-04-18 22:04:16 +08:00
parent bd9c8c7890
commit 06aac600b3
3 changed files with 61 additions and 4 deletions
+22 -1
View File
@@ -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
+22
View File
@@ -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)