timex v3.1.13 Timex.Protocol protocol

This protocol defines the API for functions which take a Date, NaiveDateTime, or DateTime as input.

Summary

Functions

Get a new version of the date/time value representing the beginning of the day

Get a new version of the date/time value representing the beginning of it’s month

Get a new version of the date/time value representing the beginning of it’s quarter

Get a new version of the date/time value representing the beginning of it’s week, providing a weekday name (as an atom) for the day which starts the week, i.e. :mon

Get a new version of the date/time value representing the beginning of it’s year

Get the century a date/time value is in

Get the ordinal day number of the given date/time value

Get the number of days in the month for the given date/time value

Get a new version of the date/time value representing the end of the day

Get a new version of the date/time value representing the ending of it’s month

Get a new version of the date/time value representing the ending of it’s quarter

Get a new version of the date/time value representing the ending of it’s week, providing a weekday name (as an atom) for the day which starts the week, i.e. :mon

Get a new version of the date/time value representing the ending of it’s year

Shifts the given date/time value to the ISO day given

Return a boolean indicating whether the date/time value is in a leap year

Determine if the provided date/time value is valid

Return a pair {year, week number} (as defined by ISO 8601) that the given date/time value falls on

Get the quarter for the given date/time value

Set fields on a date/time value using a list of unit/value pairs

Shift a date/time value using a list of shift unit/value pairs

Convert a date/time value to a Date

Convert a date/time value to a DateTime. An optional timezone can be provided, UTC will be assumed if one is not provided

Convert a date/time value to it’s Erlang tuple variant i.e. Date becomes {y,m,d}, DateTime/NaiveDateTime become {{y,m,d},{h,mm,s}}

Convert a date/time value to gregorian microseconds (microseconds since the start of year zero)

Convert a date/time value to gregorian seconds (seconds since start of year zero)

Convert a date/time value to a Julian calendar date number

Convert a date/time value to a NaiveDateTime

Convert a date/time value to seconds since the UNIX Epoch

Get the week number of the given date/time value, starting at 1

Get the ordinal weekday number of the given date/time value

Types

t()
t() :: term

Functions

beginning_of_day(datetime)

Get a new version of the date/time value representing the beginning of the day

beginning_of_month(datetime)

Get a new version of the date/time value representing the beginning of it’s month

beginning_of_quarter(datetime)

Get a new version of the date/time value representing the beginning of it’s quarter

beginning_of_week(datetime, weekstart)

Get a new version of the date/time value representing the beginning of it’s week, providing a weekday name (as an atom) for the day which starts the week, i.e. :mon.

beginning_of_year(datetime)

Get a new version of the date/time value representing the beginning of it’s year

century(datetime)

Get the century a date/time value is in

day(datetime)

Get the ordinal day number of the given date/time value

days_in_month(datetime)

Get the number of days in the month for the given date/time value

end_of_day(datetime)

Get a new version of the date/time value representing the end of the day

end_of_month(datetime)

Get a new version of the date/time value representing the ending of it’s month

end_of_quarter(datetime)

Get a new version of the date/time value representing the ending of it’s quarter

end_of_week(datetime, weekstart)

Get a new version of the date/time value representing the ending of it’s week, providing a weekday name (as an atom) for the day which starts the week, i.e. :mon.

end_of_year(datetime)

Get a new version of the date/time value representing the ending of it’s year

from_iso_day(datetime, day)

Shifts the given date/time value to the ISO day given

is_leap?(datetime)

Return a boolean indicating whether the date/time value is in a leap year

is_valid?(datetime)

Determine if the provided date/time value is valid.

iso_week(datetime)

Return a pair {year, week number} (as defined by ISO 8601) that the given date/time value falls on.

quarter(datetime)

Get the quarter for the given date/time value

set(datetime, options)

Set fields on a date/time value using a list of unit/value pairs

shift(datetime, options)

Shift a date/time value using a list of shift unit/value pairs

to_date(datetime)

Convert a date/time value to a Date

to_datetime(datetime, timezone \\ :utc)

Convert a date/time value to a DateTime. An optional timezone can be provided, UTC will be assumed if one is not provided.

to_erl(datetime)

Convert a date/time value to it’s Erlang tuple variant i.e. Date becomes {y,m,d}, DateTime/NaiveDateTime become {{y,m,d},{h,mm,s}}

to_gregorian_microseconds(datetime)

Convert a date/time value to gregorian microseconds (microseconds since the start of year zero)

to_gregorian_seconds(datetime)

Convert a date/time value to gregorian seconds (seconds since start of year zero)

to_julian(datetime)

Convert a date/time value to a Julian calendar date number

to_naive_datetime(datetime)

Convert a date/time value to a NaiveDateTime

to_unix(datetime)

Convert a date/time value to seconds since the UNIX Epoch

week_of_month(datetime)

Get the week number of the given date/time value, starting at 1

weekday(datetime)

Get the ordinal weekday number of the given date/time value