Documentation
¶
Overview ¶
Package compact_time provides encoding and decoding mechanisms for the compact time format (https://github.com/kstenerud/compact-time), as well as basic conversion functions to/from the go time package.
Basic validation is performed when decoding data, enough to ensure that it isn't blatantly wrong (such as invalid area/location values, latitude 500, december 54th, etc). However, it does not do more nuanced checks such as on which years February 29th is valid, or when leap seconds are allowed. It also doesn't check for impossible timestamp values such as 2011-03-13/02:10:00/Los_Angeles.
Package compact_time provides encoding and decoding mechanisms for the compact time format (https://github.com/kstenerud/compact-time), as well as basic conversion functions to/from the go time package.
Basic validation is performed when decoding data, enough to ensure that it isn't blatantly wrong (such as invalid area/location values, latitude 500, december 54th, etc). However, it does not do more nuanced checks such as on which years February 29th is valid, or when leap seconds are allowed. It also doesn't check for impossible timestamp values such as 2011-03-13/02:10:00/Los_Angeles.
Package compact_time provides encoding and decoding mechanisms for the compact time format (https://github.com/kstenerud/compact-time), as well as basic conversion functions to/from the go time package.
Basic validation is performed when decoding data, enough to ensure that it isn't blatantly wrong (such as invalid area/location values, latitude 500, december 54th, etc). However, it does not do more nuanced checks such as on which years February 29th is valid, or when leap seconds are allowed. It also doesn't check for impossible timestamp values such as 2011-03-13/02:10:00/Los_Angeles.
Index ¶
- Constants
- Variables
- func EncodeGoDate(time gotime.Time, writer io.Writer) (bytesEncoded int, err error)
- func EncodeGoDateToBytes(time gotime.Time, buffer []byte) (bytesEncoded int)
- func EncodeGoTime(time gotime.Time, writer io.Writer) (bytesEncoded int, err error)
- func EncodeGoTimeToBytes(time gotime.Time, buffer []byte) (bytesEncoded int)
- func EncodeGoTimestamp(time gotime.Time, writer io.Writer) (bytesEncoded int, err error)
- func EncodeGoTimestampToBytes(time gotime.Time, buffer []byte) (bytesEncoded int)
- func EncodedSizeGoDate(time gotime.Time) int
- func EncodedSizeGoTime(time gotime.Time) int
- func EncodedSizeGoTimestamp(time gotime.Time) int
- type Time
- func AsCompactTime(src gotime.Time) Time
- func DecodeDate(reader io.Reader) (time Time, bytesDecoded int, err error)
- func DecodeDateWithBuffer(reader io.Reader, buffer []byte) (time Time, bytesDecoded int, err error)
- func DecodeTime(reader io.Reader) (time Time, bytesDecoded int, err error)
- func DecodeTimeWithBuffer(reader io.Reader, buffer []byte) (time Time, bytesDecoded int, err error)
- func DecodeTimestamp(reader io.Reader) (time Time, bytesDecoded int, err error)
- func DecodeTimestampWithBuffer(reader io.Reader, buffer []byte) (time Time, bytesDecoded int, err error)
- func NewDate(year, month, day int) Time
- func NewTime(hour, minute, second, nanosecond int, timezone Timezone) Time
- func NewTimestamp(year, month, day, hour, minute, second, nanosecond int, timezone Timezone) Time
- func ZeroDate() Time
- func ZeroTime() Time
- func ZeroTimestamp() Time
- func (this *Time) AsGoTime() (result gotime.Time, err error)
- func (this *Time) Encode(writer io.Writer) (bytesEncoded int, err error)
- func (this *Time) EncodeToBytes(buffer []byte) (bytesEncoded int)
- func (this *Time) EncodedSize() int
- func (this *Time) InitDate(year, month, day int)
- func (this *Time) InitTime(hour, minute, second, nanosecond int, timezone Timezone)
- func (this *Time) InitTimestamp(year, month, day, hour, minute, second, nanosecond int, tz Timezone)
- func (this *Time) IsEquivalentTo(that Time) bool
- func (this *Time) IsZeroValue() bool
- func (this Time) String() string
- func (this *Time) Validate() error
- type TimeType
- type Timezone
- func (this *Timezone) InitWithAreaLocation(areaLocation string)
- func (this *Timezone) InitWithLatLong(latitudeHundredths, longitudeHundredths int)
- func (this *Timezone) InitWithMinutesOffsetFromUTC(minutesOffsetFromUTC int)
- func (this *Timezone) IsEquivalentTo(that *Timezone) bool
- func (this *Timezone) String() string
- func (this *Timezone) Validate() error
- type TimezoneType
Constants ¶
const ( TimeTypeDate = TimeType(iota) TimeTypeTime TimeTypeTimestamp )
const ( TimezoneTypeUnset = TimezoneType(iota) TimezoneTypeUTC TimezoneTypeLocal TimezoneTypeAreaLocation TimezoneTypeLatitudeLongitude TimezoneTypeUTCOffset )
const MaxEncodeLength = 50
Maximum byte length that this library will encode
const RequiredBufferSize = 127
Variables ¶
var ErrorIncomplete = fmt.Errorf("Compact time value is incomplete")
Functions ¶
func EncodeGoDate ¶ added in v1.5.0
func EncodeGoDateToBytes ¶ added in v1.7.0
func EncodeGoTime ¶ added in v1.5.0
func EncodeGoTimeToBytes ¶ added in v1.7.0
func EncodeGoTimestamp ¶ added in v1.5.0
func EncodeGoTimestampToBytes ¶ added in v1.7.0
func EncodedSizeGoDate ¶ added in v1.5.0
func EncodedSizeGoTime ¶ added in v1.5.0
func EncodedSizeGoTimestamp ¶ added in v1.5.0
Types ¶
type Time ¶ added in v1.0.1
type Time struct {
Timezone Timezone
Year int
Nanosecond uint32
Second uint8
Minute uint8
Hour uint8
Day uint8
Month uint8
Type TimeType
}
func AsCompactTime ¶ added in v1.0.1
Convert a golang time value to compact time
func DecodeDate ¶
Decode a date.
func DecodeDateWithBuffer ¶ added in v1.7.0
func DecodeTime ¶
Decode a time value.
func DecodeTimeWithBuffer ¶ added in v1.7.0
func DecodeTimestamp ¶
Decode a timestamp.
func DecodeTimestampWithBuffer ¶ added in v1.7.0
func NewTimestamp ¶ added in v1.0.1
func ZeroDate ¶ added in v1.6.0
func ZeroDate() Time
Create a "zero" date, which will encode to all zeroes.
func ZeroTime ¶ added in v1.6.0
func ZeroTime() Time
Create a "zero" time, which will encode to all zeroes.
func ZeroTimestamp ¶ added in v1.6.0
func ZeroTimestamp() Time
Create a "zero" timestamp, which will encode to all zeroes.
func (*Time) AsGoTime ¶ added in v1.0.1
Convert compact time into golang time. Note: Go time doesn't support latitude/longitude time zones. Attempting to
convert this type of time zone will result in an error.
Note: Converting to go time will validate area/location time zone (if any)
func (*Time) EncodeToBytes ¶ added in v1.7.0
Encode a time value (date, time, or timestamp) to a byte array. Assumes that the buffer is big enough.
func (*Time) EncodedSize ¶ added in v1.5.0
Get the number of bytes that would be required to encode this time value.
func (*Time) InitTimestamp ¶ added in v1.0.1
func (*Time) IsEquivalentTo ¶ added in v1.7.1
Check if two times are equivalent. This handles cases where the time zones are technically equivalent (Z == UTC == Etc/UTC == Etc/GMT, etc)
func (*Time) IsZeroValue ¶ added in v1.6.0
type Timezone ¶ added in v1.8.0
type Timezone struct {
ShortAreaLocation string
LongAreaLocation string
LatitudeHundredths int16
LongitudeHundredths int16
MinutesOffsetFromUTC int16
Type TimezoneType
}
func TZAtAreaLocation ¶ added in v1.8.0
func TZAtLatLong ¶ added in v1.8.0
func TZWithMiutesOffsetFromUTC ¶ added in v1.8.0
func (*Timezone) InitWithAreaLocation ¶ added in v1.8.0
func (*Timezone) InitWithLatLong ¶ added in v1.8.0
func (*Timezone) InitWithMinutesOffsetFromUTC ¶ added in v1.8.0
func (*Timezone) IsEquivalentTo ¶ added in v1.8.0
type TimezoneType ¶ added in v1.0.1
type TimezoneType uint8