Dates and Time¶
Dates and Time Types¶
-
Period¶ -
Year¶ -
Month¶ -
Week¶ -
Day¶ -
Hour¶ -
Minute¶ -
Second¶ -
Millisecond¶ Periodtypes represent discrete, human representations of time.
-
Instant¶ Instanttypes represent integer-based, machine representations of time as continuous timelines starting from an epoch.
-
UTInstant{T}¶ The
UTInstantrepresents a machine timeline based on UT time (1 day = one revolution of the earth). TheTis aPeriodparameter that indicates the resolution or precision of the instant.
-
TimeType¶ TimeTypetypes wrapInstantmachine instances to provide human representations of the machine instant.
-
DateTime¶ DateTimewraps aUTInstant{Millisecond}and interprets it according to the proleptic Gregorian calendar.
-
Date¶ Datewraps aUTInstant{Day}and interprets it according to the proleptic Gregorian calendar.
Dates Functions¶
All Dates functions are defined in the Dates module; note that only the Date, DateTime, and now functions are exported;
to use all other Dates functions, you’ll need to prefix each function call with an explicit Dates., e.g. Dates.dayofweek(dt).
Alternatively, you can write using Base.Dates to bring all exported functions into Main to be used without the Dates. prefix.
-
DateTime(y[, m, d, h, mi, s, ms]) → DateTime Construct a
DateTimetype by parts. Arguments must be convertible toInt64.
-
DateTime(periods::Period...) → DateTime Constuct a
DateTimetype byPeriodtype parts. Arguments may be in any order. DateTime parts not provided will default to the value ofDates.default(period).
-
DateTime(f::Function, y[, m, d, h, mi, s]; step=Day(1), negate=false, limit=10000) → DateTime Create a
DateTimethrough the adjuster API. The starting point will be constructed from the providedy, m, d...arguments, and will be adjusted untilf::Functionreturnstrue. The step size in adjusting can be provided manually through thestepkeyword. Ifnegate=true, then the adjusting will stop whenf::Functionreturnsfalseinstead oftrue.limitprovides a limit to the max number of iterations the adjustment API will pursue before throwing an error (in the case thatf::Functionis never satisfied).
-
DateTime(dt::Date) → DateTime Converts a
Datetype to aDateTime. The hour, minute, second, and millisecond parts of the newDateTimeare assumed to be zero.
-
DateTime(dt::AbstractString, format::AbstractString; locale="english") → DateTime Construct a
DateTimetype by parsing thedtdate string following the pattern given in theformatstring. The following codes can be used for constructing format strings:Code Matches Comment y1996, 96 Returns year of 1996, 0096 m1, 01 Matches 1 or 2-digit months uJan Matches abbreviated months according to the localekeywordUJanuary Matches full month names according to the localekeywordd1, 01 Matches 1 or 2-digit days H00 Matches hours M00 Matches minutes S00 Matches seconds s.500 Matches milliseconds eMon, Tues Matches abbreviated days of the week EMonday Matches full name days of the week yyyymmdd19960101 Matches fixed-width year, month, and day All characters not listed above are treated as delimiters between date and time slots. So a
dtstring of “1996-01-15T00:00:00.0” would have aformatstring like “y-m-dTH:M:S.s”.
-
Dates.DateFormat(format::AbstractString) → DateFormat¶ Construct a date formatting object that can be passed repeatedly for parsing similarly formatted date strings.
formatis a format string in the form described above (e.g."yyyy-mm-dd").
-
DateTime(dt::AbstractString, df::DateFormat) → DateTime Similar form as above for parsing a
DateTime, but passes aDateFormatobject instead of a raw formatting string. It is more efficient if similarly formatted date strings will be parsed repeatedly to first create aDateFormatobject then use this method for parsing.
-
Date(y[, m, d]) → Date Construct a
Datetype by parts. Arguments must be convertible toInt64.
-
Date(period::Period...) → Date Constuct a
Datetype byPeriodtype parts. Arguments may be in any order.Dateparts not provided will default to the value ofDates.default(period).
-
Date(f::Function, y[, m]; step=Day(1), negate=false, limit=10000) → Date Create a
Datethrough the adjuster API. The starting point will be constructed from the providedy, marguments, and will be adjusted untilf::Functionreturnstrue. The step size in adjusting can be provided manually through thestepkeyword. Ifnegate=true, then the adjusting will stop whenf::Functionreturnsfalseinstead oftrue.limitprovides a limit to the max number of iterations the adjustment API will pursue before throwing an error (given thatf::Functionis never satisfied).
-
Date(dt::DateTime) → Date Converts a
DateTimetype to aDate. The hour, minute, second, and millisecond parts of theDateTimeare truncated, so only the year, month and day parts are used in construction.
-
Date(dt::AbstractString, format::AbstractString; locale="english") → Date Construct a
Datetype by parsing adtdate string following the pattern given in theformatstring. Follows the same conventions asDateTimeabove.
-
Date(dt::AbstractString, df::DateFormat) → Date Parse a date from a date string
dtusing aDateFormatobjectdf.
-
now() → DateTime¶ Returns a
DateTimecorresponding to the user’s system time including the system timezone locale.
-
now(::Type{UTC}) → DateTime Returns a
DateTimecorresponding to the user’s system time as UTC/GMT.
-
eps(::DateTime) → Millisecond¶ -
eps(::Date) → Day Returns
Millisecond(1)forDateTimevalues andDay(1)forDatevalues.
Accessor Functions¶
-
year(dt::TimeType) → Int64¶ -
month(dt::TimeType) → Int64¶ -
week(dt::TimeType) → Int64¶ -
day(dt::TimeType) → Int64¶ -
hour(dt::TimeType) → Int64¶ -
minute(dt::TimeType) → Int64¶ -
second(dt::TimeType) → Int64¶ -
millisecond(dt::TimeType) → Int64¶ Return the field part of a
DateorDateTimeas anInt64.
-
Year(dt::TimeType) → Year -
Month(dt::TimeType) → Month -
Week(dt::TimeType) → Week -
Day(dt::TimeType) → Day -
Hour(dt::TimeType) → Hour -
Minute(dt::TimeType) → Minute -
Second(dt::TimeType) → Second -
Millisecond(dt::TimeType) → Millisecond Return the field part of a
DateorDateTimeas aPeriodtype.
-
yearmonth(dt::TimeType) -> (Int64, Int64)¶ Simultaneously return the year and month parts of a
DateorDateTime.
-
monthday(dt::TimeType) -> (Int64, Int64)¶ Simultaneously return the month and day parts of a
DateorDateTime.
-
yearmonthday(dt::TimeType) -> (Int64, Int64, Int64)¶ Simultaneously return the year, month, and day parts of a
DateorDateTime.
Query Functions¶
-
dayname(dt::TimeType; locale="english") → AbstractString¶ Return the full day name corresponding to the day of the week of the
DateorDateTimein the givenlocale.
-
dayabbr(dt::TimeType; locale="english") → AbstractString¶ Return the abbreviated name corresponding to the day of the week of the
DateorDateTimein the givenlocale.
-
dayofweek(dt::TimeType) → Int64¶ Returns the day of the week as an
Int64with1 = Monday, 2 = Tuesday, etc..
-
dayofweekofmonth(dt::TimeType) → Int¶ For the day of week of
dt, returns which number it is indt‘s month. So if the day of the week ofdtis Monday, then1 = First Monday of the month, 2 = Second Monday of the month, etc.In the range 1:5.
-
daysofweekinmonth(dt::TimeType) → Int¶ For the day of week of
dt, returns the total number of that day of the week indt‘s month. Returns 4 or 5. Useful in temporal expressions for specifying the last day of a week in a month by includingdayofweekofmonth(dt) == daysofweekinmonth(dt)in the adjuster function.
-
monthname(dt::TimeType; locale="english") → AbstractString¶ Return the full name of the month of the
DateorDateTimein the givenlocale.
-
monthabbr(dt::TimeType; locale="english") → AbstractString¶ Return the abbreviated month name of the
DateorDateTimein the givenlocale.
-
daysinmonth(dt::TimeType) → Int¶ Returns the number of days in the month of
dt. Value will be 28, 29, 30, or 31.
-
isleapyear(dt::TimeType) → Bool¶ Returns
trueif the year ofdtis a leap year.
-
dayofyear(dt::TimeType) → Int¶ Returns the day of the year for
dtwith January 1st being day 1.
-
daysinyear(dt::TimeType) → Int¶ Returns 366 if the year of
dtis a leap year, otherwise returns 365.
-
quarterofyear(dt::TimeType) → Int¶ Returns the quarter that
dtresides in. Range of value is 1:4.
-
dayofquarter(dt::TimeType) → Int¶ Returns the day of the current quarter of
dt. Range of value is 1:92.
Adjuster Functions¶
-
trunc(dt::TimeType, ::Type{Period}) → TimeType¶ Truncates the value of
dtaccording to the providedPeriodtype. E.g. ifdtis1996-01-01T12:30:00, thentrunc(dt,Day) == 1996-01-01T00:00:00.
-
firstdayofweek(dt::TimeType) → TimeType¶ Adjusts
dtto the Monday of its week.
-
lastdayofweek(dt::TimeType) → TimeType¶ Adjusts
dtto the Sunday of its week.
-
firstdayofmonth(dt::TimeType) → TimeType¶ Adjusts
dtto the first day of its month.
-
lastdayofmonth(dt::TimeType) → TimeType¶ Adjusts
dtto the last day of its month.
-
firstdayofyear(dt::TimeType) → TimeType¶ Adjusts
dtto the first day of its year.
-
lastdayofyear(dt::TimeType) → TimeType¶ Adjusts
dtto the last day of its year.
-
firstdayofquarter(dt::TimeType) → TimeType¶ Adjusts
dtto the first day of its quarter.
-
lastdayofquarter(dt::TimeType) → TimeType¶ Adjusts
dtto the last day of its quarter.
-
tonext(dt::TimeType, dow::Int;same::Bool=false) → TimeType¶ Adjusts
dtto the next day of week corresponding todowwith1 = Monday, 2 = Tuesday, etc. Settingsame=trueallows the currentdtto be considered as the nextdow, allowing for no adjustment to occur.
-
toprev(dt::TimeType, dow::Int;same::Bool=false) → TimeType¶ Adjusts
dtto the previous day of week corresponding todowwith1 = Monday, 2 = Tuesday, etc. Settingsame=trueallows the currentdtto be considered as the previousdow, allowing for no adjustment to occur.
-
tofirst(dt::TimeType, dow::Int;of=Month) → TimeType¶ Adjusts
dtto the firstdowof its month. Alternatively,of=Yearwill adjust to the firstdowof the year.
-
tolast(dt::TimeType, dow::Int;of=Month) → TimeType¶ Adjusts
dtto the lastdowof its month. Alternatively,of=Yearwill adjust to the lastdowof the year.
-
tonext(func::Function, dt::TimeType;step=Day(1), negate=false, limit=10000, same=false) → TimeType Adjusts
dtby iterating at mostlimititerations bystepincrements untilfuncreturnstrue.funcmust take a singleTimeTypeargument and return aBool.sameallowsdtto be considered in satisfyingfunc.negatewill make the adjustment process terminate whenfuncreturnsfalseinstead oftrue.
-
toprev(func::Function, dt::TimeType;step=Day(-1), negate=false, limit=10000, same=false) → TimeType Adjusts
dtby iterating at mostlimititerations bystepincrements untilfuncreturnstrue.funcmust take a singleTimeTypeargument and return aBool.sameallowsdtto be considered in satisfyingfunc.negatewill make the adjustment process terminate whenfuncreturnsfalseinstead oftrue.
-
recur{T<:TimeType}(func::Function, dr::StepRange{T};negate=false, limit=10000) → Vector{T}¶ functakes a single TimeType argument and returns aBoolindicating whether the input should be “included” in the final set.recurappliesfuncover each element in the range ofdr, including those elements for whichfuncreturnstruein the resulting Array, unlessnegate=true, then only elements wherefuncreturnsfalseare included.
Periods¶
-
Year(v) -
Month(v) -
Week(v) -
Day(v) -
Hour(v) -
Minute(v) -
Second(v) -
Millisecond(v) Construct a
Periodtype with the givenvvalue. Input must be losslessly convertible to anInt64.
-
default(p::Period) → Period¶ Returns a sensible “default” value for the input Period by returning
one(p)for Year, Month, and Day, andzero(p)for Hour, Minute, Second, and Millisecond.
Conversion Functions¶
-
today() → Date¶ Returns the date portion of
now().
-
unix2datetime(x) → DateTime¶ Takes the number of seconds since unix epoch
1970-01-01T00:00:00and converts to the correspondingDateTime.
-
datetime2unix(dt::DateTime) → Float64¶ Takes the given
DateTimeand returns the number of seconds since the unix epoch as aFloat64.
-
julian2datetime(julian_days) → DateTime¶ Takes the number of Julian calendar days since epoch
-4713-11-24T12:00:00and returns the correspondingDateTime.
-
datetime2julian(dt::DateTime) → Float64¶ Takes the given
DateTimeand returns the number of Julian calendar days since the julian epoch as aFloat64.
-
rata2datetime(days) → DateTime¶ Takes the number of Rata Die days since epoch
0000-12-31T00:00:00and returns the correspondingDateTime.
-
datetime2rata(dt::TimeType) → Int64¶ Returns the number of Rata Die days since epoch from the given
DateorDateTime.
Constants¶
Days of the Week:
| Variable | Abbr. | Value (Int) |
|---|---|---|
Monday |
Mon |
1 |
Tuesday |
Tue |
2 |
Wednesday |
Wed |
3 |
Thursday |
Thu |
4 |
Friday |
Fri |
5 |
Saturday |
Sat |
6 |
Sunday |
Sun |
7 |
Months of the Year:
| Variable | Abbr. | Value (Int) |
|---|---|---|
January |
Jan |
1 |
February |
Feb |
2 |
March |
Mar |
3 |
April |
Apr |
4 |
May |
May |
5 |
June |
Jun |
6 |
July |
Jul |
7 |
August |
Aug |
8 |
September |
Sep |
9 |
October |
Oct |
10 |
November |
Nov |
11 |
December |
Dec |
12 |