Files
ezbookkeeping/pkg/utils/datetimes.go
T
2021-03-25 23:09:59 +08:00

45 lines
1.6 KiB
Go

package utils
import "time"
const (
longDateTimeFormat = "2006-01-02 15:04:05"
longDateTimeWithoutSecondFormat = "2006-01-02 15:04"
)
// 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)
}
// FormatToLongDateTimeWithoutSecond returns a textual representation of the time value formatted by long date time format (no second)
func FormatToLongDateTimeWithoutSecond(t time.Time) string {
return t.Format(longDateTimeWithoutSecondFormat)
}
// ParseFromUnixTime parses a unix time and returns a golang time struct
func ParseFromUnixTime(unixTime int64) time.Time {
return time.Unix(unixTime, 0)
}
// ParseFromLongDateTime parses a formatted string in long date time format
func ParseFromLongDateTime(t string, utcOffset int16) (time.Time, error) {
timezone := time.FixedZone("Timezone", int(utcOffset)*60)
return time.ParseInLocation(longDateTimeFormat, t, timezone)
}
// GetMinTransactionTimeFromUnixTime returns the minimum transaction time from unix time
func GetMinTransactionTimeFromUnixTime(unixTime int64) int64 {
return unixTime * 1000
}
// GetMaxTransactionTimeFromUnixTime returns the maximum transaction time from unix time
func GetMaxTransactionTimeFromUnixTime(unixTime int64) int64 {
return unixTime*1000 + 999
}
// GetUnixTimeFromTransactionTime returns unix time from the transaction time
func GetUnixTimeFromTransactionTime(transactionTime int64) int64 {
return transactionTime / 1000
}