package types
import (
)
const (
dateFormat = "2006-01-02"
timeFormat = "15:04:05.999999999"
timestampFormat = "2006-01-02 15:04:05.999999999"
timestamptzFormat = "2006-01-02 15:04:05.999999999-07:00:00"
timestamptzFormat2 = "2006-01-02 15:04:05.999999999-07:00"
timestamptzFormat3 = "2006-01-02 15:04:05.999999999-07"
)
func ( []byte) (time.Time, error) {
:= internal.BytesToString()
return ParseTimeString()
}
func ( string) (time.Time, error) {
switch := len(); {
case <= len(timeFormat):
if [2] == ':' {
return time.ParseInLocation(timeFormat, , time.UTC)
}
return time.ParseInLocation(dateFormat, , time.UTC)
default:
if [10] == 'T' {
return time.Parse(time.RFC3339Nano, )
}
if := [-9]; == '+' || == '-' {
return time.Parse(timestamptzFormat, )
}
if := [-6]; == '+' || == '-' {
return time.Parse(timestamptzFormat2, )
}
if := [-3]; == '+' || == '-' {
return time.Parse(timestamptzFormat3, )
}
return time.ParseInLocation(timestampFormat, , time.UTC)
}
}
func ( []byte, time.Time, int) []byte {
if == 1 {
= append(, '\'')
}
= .UTC().AppendFormat(, timestamptzFormat)
if == 1 {
= append(, '\'')
}
return
}