Documentation
¶
Index ¶
- Constants
- func MustLoadLocation(t *testing.T, name string) *time.Location
- func NewDateTimeParseError(value string) error
- func NewDurationArithmeticError(value string, err error) error
- func NewDurationParseError(value string, err error) error
- func NewInvalidTimezoneError(timezone string, err error) error
- type DateTime
- func (dt DateTime) Add(d ISODuration) DateTime
- func (d DateTime) AddDateNoOverflow(years int, months int, days int) DateTime
- func (d DateTime) AddDays(days int) DateTime
- func (d DateTime) AddHours(hours int) DateTime
- func (d DateTime) AddMinutes(minutes int) DateTime
- func (d DateTime) AddMonthsNoOverflow(months int) DateTime
- func (d DateTime) AddSeconds(seconds alpacadecimal.Decimal) DateTime
- func (d DateTime) AddWeeks(weeks int) DateTime
- func (d DateTime) AddYearsNoOverflow(years int) DateTime
- func (t DateTime) AsTime() time.Time
- func (t DateTime) Format(layout string) string
- func (t DateTime) MarshalJSON() ([]byte, error)
- func (t *DateTime) UnmarshalJSON(data []byte) error
- type ISODuration
- func (p ISODuration) Add(p2 ISODuration) (ISODuration, error)
- func (p ISODuration) AddTo(t time.Time) (time.Time, bool)
- func (d ISODuration) DivisibleBy(smaller ISODuration) (bool, error)
- func (p *ISODuration) Equal(v *ISODuration) bool
- func (p ISODuration) ISOString() ISODurationString
- func (d *ISODuration) ISOStringPtrOrNil() *ISODurationString
- func (d ISODuration) MarshalJSON() ([]byte, error)
- func (p ISODuration) Mul(n int) (ISODuration, error)
- func (p ISODuration) Negate() ISODuration
- func (p ISODuration) Normalise(exact bool) ISODuration
- func (p ISODuration) Simplify(exact bool) ISODuration
- func (p ISODuration) Subtract(p2 ISODuration) (ISODuration, error)
- func (d *ISODuration) UnmarshalJSON(data []byte) error
- type ISODurationString
Constants ¶
const ( RFC9557Layout = "2006-01-02T15:04:05Z07:00[" + layoutTZName + "]" RFC9557MilliLayout = "2006-01-02T15:04:05.999Z07:00[" + layoutTZName + "]" RFC9557MicroLayout = "2006-01-02T15:04:05.999999Z07:00[" + layoutTZName + "]" RFC9557NanoLayout = "2006-01-02T15:04:05.999999999Z07:00[" + layoutTZName + "]" )
RFC9557 format layouts support timezone information in square brackets.
const ( ISO8601Layout = "2006-01-02T15:04:05-07:00" ISO8601MilliLayout = "2006-01-02T15:04:05.999-07:00" ISO8601MicroLayout = "2006-01-02T15:04:05.999999-07:00" ISO8601NanoLayout = "2006-01-02T15:04:05.999999999-07:00" )
ISO8601 format layouts for standard timestamp parsing.
const ( ISO8601ZuluLayout = "2006-01-02T15:04:05Z" ISO8601ZuluMilliLayout = "2006-01-02T15:04:05.999Z" ISO8601ZuluMicroLayout = "2006-01-02T15:04:05.999999Z" ISO8601ZuluNanoLayout = "2006-01-02T15:04:05.999999999Z" )
ISO8601 Zulu (UTC) format layouts.
Variables ¶
This section is empty.
Functions ¶
func MustLoadLocation ¶
MustLoadLocation is a helper function that panics if the location cannot be loaded.
func NewDateTimeParseError ¶
NewDateTimeParseError creates a general parse error for datetime values.
func NewDurationParseError ¶
NewDurationParseError creates a general parse error for duration values.
func NewInvalidTimezoneError ¶
NewInvalidTimezoneError creates an error for when an invalid timezone is specified.
Types ¶
type DateTime ¶
DateTime extends the time.Time type to support the RFC 9557 format.
func MustParseDateTime ¶
MustParseDateTime is a helper function to parse time with error checking
func MustParseTimeInLocation ¶
MustParseTimeInLocation is a helper function to parse time in specific location
func NewDateTime ¶
NewDateTime creates a new DateTime from a time.Time.
func (DateTime) Add ¶
func (dt DateTime) Add(d ISODuration) DateTime
Add adds a duration to a DateTime.
func (DateTime) AddDateNoOverflow ¶
AddDateNoOverflow adds some years, months, and days without overflowing month.
func (DateTime) AddMinutes ¶
AddMinutes adds some minutes to the DateTime.
func (DateTime) AddMonthsNoOverflow ¶
AddMonthsNoOverflow adds some months without overflowing month.
func (DateTime) AddSeconds ¶
func (d DateTime) AddSeconds(seconds alpacadecimal.Decimal) DateTime
AddSeconds adds some seconds to the DateTime.
func (DateTime) AddYearsNoOverflow ¶
AddYearsNoOverflow adds some years without overflowing month.
func (DateTime) MarshalJSON ¶
MarshalJSON marshals the DateTime to a JSON string in RFC3339 format.
func (*DateTime) UnmarshalJSON ¶
UnmarshalJSON unmarshals the DateTime from a JSON string. It supports RFC3339, ISO8601, and RFC9557 formats.
type ISODuration ¶
ISODuration represents ISO 8601 duration. It is mostly a wrapper around github.com/rickb777/period
var ( DurationSecond ISODuration = NewISODuration(0, 0, 0, 0, 0, 0, 1) DurationMinute ISODuration = NewISODuration(0, 0, 0, 0, 0, 1, 0) DurationHour ISODuration = NewISODuration(0, 0, 0, 0, 1, 0, 0) DurationDay ISODuration = NewISODuration(0, 0, 0, 1, 0, 0, 0) DurationWeek ISODuration = NewISODuration(0, 0, 1, 0, 0, 0, 0) DurationMonth ISODuration = NewISODuration(0, 1, 0, 0, 0, 0, 0) DurationYear ISODuration = NewISODuration(1, 0, 0, 0, 0, 0, 0) )
func ISODurationBetween ¶
func ISODurationBetween(start time.Time, end time.Time) ISODuration
func ISODurationFromDuration ¶
func ISODurationFromDuration(d time.Duration) ISODuration
ISODurationFromDuration creates an IMPRECISE Period from a time.Duration
func MustParseDuration ¶
func MustParseDuration(t *testing.T, s string) ISODuration
MustParseDuration is a helper function to parse duration with error checking
func NewISODuration ¶
func NewISODuration(years, months, weeks, days, hours, minutes, seconds int) ISODuration
func (ISODuration) Add ¶
func (p ISODuration) Add(p2 ISODuration) (ISODuration, error)
func (ISODuration) AddTo ¶
AddTo adds the duration to the time.Time and returns the result and a boolean indicating if the conversion was precise. The conversion is always precise but the signature is kept for backwards compatibility.
func (ISODuration) DivisibleBy ¶
func (d ISODuration) DivisibleBy(smaller ISODuration) (bool, error)
DivisibleBy returns true if the duration is divisible by the smaller duration.
func (*ISODuration) Equal ¶
func (p *ISODuration) Equal(v *ISODuration) bool
Equal returns true if the two periods are equal
func (ISODuration) ISOString ¶
func (p ISODuration) ISOString() ISODurationString
ISOString() returns the ISO8601 string representation of the period
func (*ISODuration) ISOStringPtrOrNil ¶
func (d *ISODuration) ISOStringPtrOrNil() *ISODurationString
ISOStringPtrOrNil() returns the ISO8601 string representation of the period or if Period is nil, returns nil
func (ISODuration) MarshalJSON ¶
func (d ISODuration) MarshalJSON() ([]byte, error)
MarshalJSON marshals the Duration to a JSON string.
func (ISODuration) Mul ¶
func (p ISODuration) Mul(n int) (ISODuration, error)
func (ISODuration) Negate ¶
func (p ISODuration) Negate() ISODuration
func (ISODuration) Normalise ¶
func (p ISODuration) Normalise(exact bool) ISODuration
func (ISODuration) Simplify ¶
func (p ISODuration) Simplify(exact bool) ISODuration
func (ISODuration) Subtract ¶
func (p ISODuration) Subtract(p2 ISODuration) (ISODuration, error)
func (*ISODuration) UnmarshalJSON ¶
func (d *ISODuration) UnmarshalJSON(data []byte) error
UnmarshalJSON unmarshals the Duration from a JSON string.
type ISODurationString ¶
func (ISODurationString) Parse ¶
func (i ISODurationString) Parse() (ISODuration, error)
func (*ISODurationString) ParsePtrOrNil ¶
func (i *ISODurationString) ParsePtrOrNil() (*ISODuration, error)
ParsePtrOrNil parses the ISO8601 string representation of the period or if ISODurationString is nil, returns nil
func (ISODurationString) String ¶
func (i ISODurationString) String() string