datetime

package
v1.0.0-beta.225 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
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.

View Source
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.

View Source
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

func MustLoadLocation(t *testing.T, name string) *time.Location

MustLoadLocation is a helper function that panics if the location cannot be loaded.

func NewDateTimeParseError

func NewDateTimeParseError(value string) error

NewDateTimeParseError creates a general parse error for datetime values.

func NewDurationArithmeticError

func NewDurationArithmeticError(value string, err error) error

func NewDurationParseError

func NewDurationParseError(value string, err error) error

NewDurationParseError creates a general parse error for duration values.

func NewInvalidTimezoneError

func NewInvalidTimezoneError(timezone string, err error) error

NewInvalidTimezoneError creates an error for when an invalid timezone is specified.

Types

type DateTime

type DateTime struct {
	time.Time
}

DateTime extends the time.Time type to support the RFC 9557 format.

func MustParseDateTime

func MustParseDateTime(t *testing.T, timeStr string) DateTime

MustParseDateTime is a helper function to parse time with error checking

func MustParseTimeInLocation

func MustParseTimeInLocation(t *testing.T, timeStr string, loc *time.Location) DateTime

MustParseTimeInLocation is a helper function to parse time in specific location

func NewDateTime

func NewDateTime(t time.Time) DateTime

NewDateTime creates a new DateTime from a time.Time.

func Parse

func Parse(value string) (DateTime, error)

Parse parses a RFC3339, ISO8601, or RFC9557 formatted string into a DateTime.

func (DateTime) Add

func (dt DateTime) Add(d ISODuration) DateTime

Add adds a duration to a DateTime.

func (DateTime) AddDateNoOverflow

func (d DateTime) AddDateNoOverflow(years int, months int, days int) DateTime

AddDateNoOverflow adds some years, months, and days without overflowing month.

func (DateTime) AddDays

func (d DateTime) AddDays(days int) DateTime

AddDays adds some days to the DateTime.

func (DateTime) AddHours

func (d DateTime) AddHours(hours int) DateTime

AddHours adds some hours to the DateTime.

func (DateTime) AddMinutes

func (d DateTime) AddMinutes(minutes int) DateTime

AddMinutes adds some minutes to the DateTime.

func (DateTime) AddMonthsNoOverflow

func (d DateTime) AddMonthsNoOverflow(months int) DateTime

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) AddWeeks

func (d DateTime) AddWeeks(weeks int) DateTime

AddWeeks adds some weeks to the DateTime.

func (DateTime) AddYearsNoOverflow

func (d DateTime) AddYearsNoOverflow(years int) DateTime

AddYearsNoOverflow adds some years without overflowing month.

func (DateTime) AsTime

func (t DateTime) AsTime() time.Time

AsTime returns the underlying time.Time.

func (DateTime) Format

func (t DateTime) Format(layout string) string

Format extends the time.Time.Format method to support the RFC 9557 format

func (DateTime) MarshalJSON

func (t DateTime) MarshalJSON() ([]byte, error)

MarshalJSON marshals the DateTime to a JSON string in RFC3339 format.

func (*DateTime) UnmarshalJSON

func (t *DateTime) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the DateTime from a JSON string. It supports RFC3339, ISO8601, and RFC9557 formats.

type ISODuration

type ISODuration struct {
	period.Period
}

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 (ISODuration) AddTo

func (p ISODuration) AddTo(t time.Time) (time.Time, bool)

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

type ISODurationString period.ISOString

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL