Skip to content

Commit

Permalink
add seconds to time column in exported data
Browse files Browse the repository at this point in the history
  • Loading branch information
mayswind committed Jun 16, 2024
1 parent 226d446 commit 0438964
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
2 changes: 1 addition & 1 deletion pkg/converters/ezbookkeeping_plain_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func (e *EzBookKeepingPlainFileExporter) toExportedContent(uid int64, separator
}

transactionTimeZone := time.FixedZone("Transaction Timezone", int(transaction.TimezoneUtcOffset)*60)
transactionTime := utils.FormatUnixTimeToLongDateTimeWithoutSecond(utils.GetUnixTimeFromTransactionTime(transaction.TransactionTime), transactionTimeZone)
transactionTime := utils.FormatUnixTimeToLongDateTime(utils.GetUnixTimeFromTransactionTime(transaction.TransactionTime), transactionTimeZone)
transactionTimezone := utils.FormatTimezoneOffset(transactionTimeZone)
transactionType := e.getTransactionTypeName(transaction.Type)
category := e.replaceDelimiters(e.getTransactionCategoryName(transaction.CategoryId, categoryMap), separator)
Expand Down
11 changes: 11 additions & 0 deletions pkg/utils/datetimes.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,17 @@ func ParseNumericYearMonth(yearMonth string) (int32, int32, error) {
return year, month, nil
}

// FormatUnixTimeToLongDateTime returns a textual representation of the unix time formatted by long date time format
func FormatUnixTimeToLongDateTime(unixTime int64, timezone *time.Location) string {
t := parseFromUnixTime(unixTime)

if timezone != nil {
t = t.In(timezone)
}

return t.Format(longDateTimeFormat)
}

// FormatUnixTimeToLongDateTimeInServerTimezone returns a textual representation of the unix time formatted by long date time format
func FormatUnixTimeToLongDateTimeInServerTimezone(unixTime int64) string {
return parseFromUnixTime(unixTime).Format(longDateTimeFormat)
Expand Down
14 changes: 14 additions & 0 deletions pkg/utils/datetimes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,20 @@ func TestParseNumericYearMonth(t *testing.T) {
assert.Equal(t, expectedMonth, actualMonth)
}

func TestFormatUnixTimeToLongDateTime(t *testing.T) {
unixTime := int64(1617228083)
utcTimezone := time.FixedZone("Test Timezone", 0) // UTC
utc8Timezone := time.FixedZone("Test Timezone", 28800) // UTC+8

expectedValue := "2021-03-31 22:01:23"
actualValue := FormatUnixTimeToLongDateTime(unixTime, utcTimezone)
assert.Equal(t, expectedValue, actualValue)

expectedValue = "2021-04-01 06:01:23"
actualValue = FormatUnixTimeToLongDateTime(unixTime, utc8Timezone)
assert.Equal(t, expectedValue, actualValue)
}

func TestFormatUnixTimeToLongDateTimeWithoutSecond(t *testing.T) {
unixTime := int64(1617228083)
utcTimezone := time.FixedZone("Test Timezone", 0) // UTC
Expand Down

0 comments on commit 0438964

Please sign in to comment.