dates

package
v1.53.2 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2024 License: AGPL-3.0, AGPL-3.0-or-later Imports: 9 Imported by: 35

Documentation

Index

Constants

View Source
const (
	DateOnlyLayouts = LayoutType(dateSeq)
	TimeOnlyLayouts = LayoutType(timeSeq)
	DateTimeLayouts = LayoutType(dateSeq | timeSeq | dateTimeSeq)
)

formatting mode constants

View Source
const (
	ISO8601Date = "YYYY-MM-DD"
)

Variables

View Source
var ZeroDate = Date{}

ZeroDate is our uninitialized date value

View Source
var ZeroDateTime = time.Time{}

ZeroDateTime is our uninitialized datetime value

View Source
var ZeroTimeOfDay = TimeOfDay{}

ZeroTimeOfDay is our uninitialized time of day value

Functions

func DayToUTCRange

func DayToUTCRange(d time.Time, tz *time.Location) (time.Time, time.Time)

DayToUTCRange returns the UTC time range of the given day

func DaysBetween

func DaysBetween(date1 time.Time, date2 time.Time) int

DaysBetween returns the number of calendar days (an int) between the two dates. Note that if these are in different timezones then the local calendar day is used for each and the difference is calculated from that.

func Format added in v1.9.0

func Format(t time.Time, layout string, locale i18n.Locale, type_ LayoutType) (string, error)

Format formats a date/time value using a layout string.

If type is DateOnlyLayouts or DateTimeLayouts, the following sequences are accepted:

`YY`        - last two digits of year 0-99
`YYYY`      - four digits of your 0000-9999
`M`         - month 1-12
`MM`        - month 01-12
`MMM`       - month Jan-Dec (localized using given locale)
`MMMM`      - month January-December (localized using given locale)
`D`         - day of month 1-31
`DD`        - day of month, zero padded 0-31
`EEE`       - day of week Mon-Sun (localized using given locale)
`EEEE`      - day of week Monday-Sunday (localized using given locale)

If type is TimeOnlyLayouts or DateTimeLayouts, the following sequences are accepted:

`h`         - hour of the day 1-12
`hh`        - hour of the day 01-12
`t`         - twenty four hour of the day 0-23
`tt`        - twenty four hour of the day 00-23
`m`         - minute 0-59
`mm`        - minute 00-59
`s`         - second 0-59
`ss`        - second 00-59
`fff`       - milliseconds
`ffffff`    - microseconds
`fffffffff` - nanoseconds
`aa`        - am or pm (localized using given locale)
`AA`        - AM or PM (localized using given locale)

If type is DateTimeLayouts, the following sequences are accepted:

`Z`         - hour and minute offset from UTC, or Z for UTC
`ZZZ`       - hour and minute offset from UTC

The following chars are allowed and ignored: ' ', ':', ',', 'T', '-', '_', '/'

func FormatISO

func FormatISO(date time.Time) string

DateTimeToISO converts the passed in time.Time to a string in full ISO8601 format

func MonthsBetween

func MonthsBetween(date1 time.Time, date2 time.Time) int

MonthsBetween returns the number of calendar months (an int) between the two dates. Note that if these are in different timezones then the local calendar day is used for each and the difference is calculated from that.

func Now

func Now() time.Time

Now returns the time now.. according to the current source of now

func ParseDateTime added in v1.9.0

func ParseDateTime(layout string, value string, tz *time.Location) (time.Time, error)

ParseDate parses the given string into a datetime

func SetNowSource

func SetNowSource(source NowSource)

SetNowSource sets the time source used by Now()

func Since added in v1.22.4

func Since(t time.Time) time.Duration

Since returns the time elapsed since t

func ValidateFormat added in v1.9.0

func ValidateFormat(layout string, type_ LayoutType, mode LayoutMode) error

ValidateFormat parses a formatting layout string to validate it

Types

type Date

type Date struct {
	Year  int
	Month time.Month
	Day   int
}

Date is a local gregorian calendar date

func ExtractDate

func ExtractDate(dt time.Time) Date

ExtractDate extracts the date from the give datetime

func NewDate

func NewDate(year, month, day int) Date

NewDate creates a new date

func ParseDate

func ParseDate(layout string, value string) (Date, error)

ParseDate parses the given string into a date

func (Date) Combine

func (d Date) Combine(tod TimeOfDay, tz *time.Location) time.Time

Combine combines this date and a time to make a datetime

func (Date) Compare

func (d Date) Compare(other Date) int

Compare compares this time of day to another

func (Date) Equal

func (d Date) Equal(other Date) bool

Equal determines equality for this type

func (Date) Format

func (d Date) Format(layout string, loc i18n.Locale) (string, error)

Format formats this date as a string using the given layout

func (*Date) Scan added in v1.20.0

func (d *Date) Scan(value any) error

Scan scans from the db value

func (Date) String

func (d Date) String() string

String returns the ISO8601 representation

func (Date) Value added in v1.20.0

func (d Date) Value() (driver.Value, error)

Value returns the value used in db writes

func (Date) WeekNum

func (d Date) WeekNum() int

WeekNum returns the number of the week (1-54)

func (Date) Weekday

func (d Date) Weekday() time.Weekday

Weekday returns the day of the week

func (Date) YearDay

func (d Date) YearDay() int

YearDay returns the day of the year (1-366)

type LayoutMode added in v1.9.0

type LayoutMode int

LayoutMode describes what a layout is being used for

const (
	FormattingMode LayoutMode = 1
	ParsingMode    LayoutMode = 2
)

formatting mode constants

func (LayoutMode) String added in v1.9.0

func (m LayoutMode) String() string

String converts a layout mode to a string - used for error messages

type LayoutType added in v1.9.0

type LayoutType uint

LayoutType describes what layout sequences are permitted in a formatting operation

func (LayoutType) Includes added in v1.9.0

func (t LayoutType) Includes(seqType int) bool

Includes returns whether the given sequence type is included in this layout type

func (LayoutType) String added in v1.9.0

func (t LayoutType) String() string

String converts a layout type to a string - used for error messages

type NowSource

type NowSource interface {
	Now() time.Time
}

NowSource is something that can provide a now result

var DefaultNowSource NowSource = defaultNowSource{}

DefaultNowSource is the default time source

func NewFixedNowSource

func NewFixedNowSource(now time.Time) NowSource

NewFixedNowSource creates a new fixed time now source

func NewSequentialNowSource

func NewSequentialNowSource(start time.Time) NowSource

NewSequentialNowSource creates a new sequential time source

type TimeOfDay

type TimeOfDay struct {
	Hour   int
	Minute int
	Second int
	Nanos  int
}

TimeOfDay represents a local time of day value

func ExtractTimeOfDay

func ExtractTimeOfDay(dt time.Time) TimeOfDay

ExtractTimeOfDay extracts the time of day from the give datetime

func NewTimeOfDay

func NewTimeOfDay(hour, minute, second, nanos int) TimeOfDay

NewTimeOfDay creates a new time of day

func ParseTimeOfDay

func ParseTimeOfDay(layout string, value string) (TimeOfDay, error)

ParseTimeOfDay parses the given string into a time of day

func (TimeOfDay) Combine

func (t TimeOfDay) Combine(date Date, tz *time.Location) time.Time

Combine combines this time and a date to make a datetime

func (TimeOfDay) Compare

func (t TimeOfDay) Compare(other TimeOfDay) int

Compare compares this time of day to another

func (TimeOfDay) Equal

func (t TimeOfDay) Equal(other TimeOfDay) bool

Equal determines equality for this type

func (TimeOfDay) Format

func (t TimeOfDay) Format(layout string, loc i18n.Locale) (string, error)

Format formats this time of day as a string

func (TimeOfDay) String

func (t TimeOfDay) String() string

String returns the ISO8601 representation

type Translation added in v1.9.0

type Translation struct {
	Days        []string `json:"days"`
	ShortDays   []string `json:"short_days"`
	Months      []string `json:"months"`
	ShortMonths []string `json:"short_months"`
	AmPm        []string `json:"am_pm"`
}

func GetTranslation added in v1.9.0

func GetTranslation(loc i18n.Locale) *Translation

GetTranslation gets the best match translation for the given locale

Jump to

Keyboard shortcuts

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