51 lines
1.7 KiB
Go
51 lines
1.7 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)
|
|
}
|
|
|
|
// FormatUnixTimeToLongDateTimeWithoutSecond returns a textual representation of the unix time formatted by long date time format (no second)
|
|
func FormatUnixTimeToLongDateTimeWithoutSecond(unixTime int64, timezone *time.Location) string {
|
|
t := ParseFromUnixTime(unixTime)
|
|
|
|
if timezone != nil {
|
|
t = t.In(timezone)
|
|
}
|
|
|
|
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
|
|
}
|