Даты и время
Типы дат и времени
-
Period -
Year -
Month -
Week -
Day -
Hour -
Minute -
Second -
Millisecond -
Типы
Periodпредставляют собой дискретные, человекочитаемые представления времени.
-
CompoundPeriod -
CompoundPeriodполезна для выражения временных интервалов, которые не являются фиксированным кратным меньшим интервалам. Например, «год и один день» не является фиксированным числом дней, но может быть выражено с помощьюCompoundPeriod. На самом деле,CompoundPeriodавтоматически генерируется путем сложения различных типов интервалов, например,Year(1) + Day(1)даёт результатCompoundPeriod.
-
Instant -
Типы
Instantпредставляют собой целые числа, машинные представления времени как непрерывные временные шкалы, начинающиеся с эпохи.
-
UTInstant{T} -
UTInstantпредставляет собой машинную временную шкалу, основанную на времени UT (1 день = одно вращение Земли).T— это параметрPeriod, который указывает на разрешение или точность момента.
-
TimeType -
Типы
TimeTypeобертывают машинные инстансыInstant, чтобы предоставить человекочитаемые представления машинного момента. ОбаDateTimeиDateявляются подтипамиTimeType.
-
DateTime -
DateTimeобертываетUTInstant{Millisecond}и интерпретирует его в соответствии с пролептическим григорианским календарём.
-
Date -
DateобертываетUTInstant{Day}и интерпретирует его в соответствии с пролептическим григорианским календарём.
Функции дат
Все функции дат определены в модуле Dates; обратите внимание, что экспортируются только функции Date, DateTime, и now; чтобы использовать все остальные функции Dates, вам нужно будет добавлять префикс Dates. к каждому вызову функции, например, Dates.dayofweek(dt). В качестве альтернативы, вы можете написать using Base.Dates , чтобы добавить все экспортированные функции в Main, чтобы использовать их без префикса Dates..
-
DateTime(y[, m, d, h, mi, s, ms]) → DateTime -
Создать тип
DateTimeпо частям. Аргументы должны быть преобразуемы вInt64.
-
DateTime(periods::Period...) → DateTime -
Создать тип
DateTimeпо частям типаPeriod. Аргументы могут быть в любом порядке. Части DateTime, которые не предоставлены, будут по умолчанию иметь значениеDates.default(period).
-
DateTime(f::Function, y[, m, d, h, mi, s]; step=Day(1), negate=false, limit=10000) → DateTime -
Создать
DateTimeс помощью API настройки. Начальная точка будет создана из предоставленных аргументовy, m, d..., и будет настроена до тех пор, покаf::Functionне вернётtrue. Шаг при настройке можно указать вручную с помощью ключевого словаstep. Еслиnegate=true, то настройка остановится, когдаf::Functionвернётfalseвместоtrue.limitзадаёт ограничение на максимальное количество итераций, которые API настройки будет выполнять, прежде чем выбросить ошибку (в случае, еслиf::Functionникогда не будет выполнено).
-
DateTime(dt::Date) → DateTime -
Преобразует
DateвDateTime. Части часа, минуты, секунды и миллисекунды новогоDateTimeпредполагаются равными нулю.
-
DateTime(dt::AbstractString, format::AbstractString; locale="english") → DateTime -
Создать
DateTime, разобрав строку датыdtпо шаблону, заданному в строкеformat. Следующие символы могут быть использованы для построения строкиformat:Код Совпадения Комментарий y1996, 96 Возвращает год 1996, 0096 Y1996, 96 Возвращает год 1996, 0096. Эквивалентно ym1, 01 Совпадение 1 или 2-значных месяцев uJan Совпадение сокращённых названий месяцев в соответствии с ключевым словом localeUJanuary Совпадение полных названий месяцев в соответствии с ключевым словом localed1, 01 Совпадение 1 или 2-значных дней H00 Совпадение часов M00 Совпадение минут S00 Совпадение секунд s.500 Совпадение миллисекунд eMon, Tues Совпадение сокращённых названий дней недели EMonday Совпадение полных названий дней недели yyyymmdd19960101 Совпадение фиксированной ширины года, месяца и дня Символы, не перечисленные выше, обычно обрабатываются как разделители между частями даты и времени. Например, строка «1996-01-15T00:00:00.0» имеет строку шаблона «y-m-dTH:M:S.s». Если вам нужно использовать символ кода как разделитель, вы можете экранировать его с помощью обратного слэша. Дата «1995y01m» будет иметь формат «y\ym\m».
-
format(dt::TimeType, format::AbstractString; locale="english") → AbstractString -
Сгенерировать строку, используя объект
TimeTypeи применив предоставленныйformatшаблон. Следующие символы могут быть использованы для построения строкиformat:Код Примеры Комментарий y6 Числовой год фиксированной ширины Y1996 Числовой год минимальной ширины m1, 12 Числовой месяц минимальной ширины uJan Сокращённое название месяца из 3 символов в соответствии с ключевым словом localeUJanuary Полное название месяца в соответствии с ключевым словом localed1, 31 Число месяца минимальной ширины H0, 23 Часы (24-часовой формат) минимальной ширины M0, 59 Минуты минимальной ширины S0, 59 Секунды минимальной ширины s000, 500 Миллисекунды минимальной шириной 3 eMon, Tue Сокращённые названия дней недели EMonday Полные названия дней недели Количество последовательных символов кода указывает на ширину кода. Формат
yyyy-mmуказывает, что кодyдолжен иметь ширину четыре, аm- ширину два. Коды, которые генерируют числовые цифры, имеют связанный режим: фиксированной ширины или минимальной ширины. Режим фиксированной ширины дополняет значение нулями слева, если оно короче заданной ширины, и обрезает значение, если оно длиннее. Режим минимальной ширины работает так же, как и режим фиксированной ширины, за исключением того, что он не обрезает значения, которые длиннее ширины.При создании строки вы можете использовать любые не-символы кода в качестве разделителей. Например, чтобы сгенерировать строку «1996-01-15T00:00:00», можно использовать шаблон «yyyy-mm-ddTHH:MM:SS». Обратите внимание, что если вам нужно использовать символ кода как буквенный символ, вы можете использовать обратный слэш в качестве символа экранирования. Строка «1996y01m» может быть получена с помощью шаблона «yyyy\ymm\m».
-
DateFormat(format::AbstractString, locale::AbstractString="english") → DateFormat -
Создать объект форматирования даты, который можно использовать для разбора строк дат или форматирования объекта даты в строку. Подробную информацию о синтаксисе для
formatсм. в разделах Разбор и Форматирование.
-
DateTime(dt::AbstractString, df::DateFormat) → DateTime -
Создать
DateTime, разобрав строку датыdtпо шаблону, заданному в объектеDates.DateFormat(). АналогичноDateTime(::AbstractString, ::AbstractString), но более эффективно при многократном разборе строк дат с похожим форматом с предварительно созданным объектомDateFormat.
-
Date(y[, m, d]) → Date -
Создать тип
Dateпо частям. Аргументы должны быть преобразуемы вInt64.
-
Date(period::Period...) → Date -
Создать тип
Dateпо частям типаPeriod. Аргументы могут быть в любом порядке. ЧастиDate, которые не предоставлены, будут по умолчанию иметь значениеDates.default(period).
-
Date(f::Function, y[, m, d]; step=Day(1), negate=false, limit=10000) → Date -
Создать
Dateс помощью API корректировки. Начальная точка будет построена из предоставленныхy, m, dаргументов и будет корректироваться до тех пор, покаf::Functionне вернётtrue. Шаг корректировки можно указать вручную с помощью ключевого словаstep. Еслиnegate=true, корректировка прекратится, когдаf::Functionвернётfalseвместоtrue.limitзадаёт ограничение на максимальное количество итераций, которое API корректировки будет использовать, прежде чем сгенерировать ошибку (при условии, чтоf::Functionникогда не выполнится).
-
Date(dt::DateTime) → Date -
Преобразует
DateTimeвDate. Части часа, минуты, секунды и миллисекундыDateTimeусекаются, поэтому при построении используются только год, месяц и день.
-
Date(dt::AbstractString, format::AbstractString; locale="english") → Date -
Создать объект
Date, разобрав строку датыdtпо шаблону, указанному в строкеformat. Следует тем же соглашениям, что иDateTime(::AbstractString, ::AbstractString).
-
Date(dt::AbstractString, df::DateFormat) → Date -
Разобрать дату из строки даты
dtс использованием объектаDateFormatdf.
-
now() → DateTime -
Возвращает
DateTime, соответствующий системному времени пользователя, включая часовой пояс.
-
now(::Type{UTC}) → DateTime -
Возвращает
DateTime, соответствующий системному времени пользователя в формате UTC/GMT.
-
eps(::DateTime) → Millisecond -
eps(::Date) → Day -
Возвращает
Millisecond(1)дляDateTimeзначений иDay(1)дляDateзначений.
Функции доступа
-
year(dt::TimeType) → Int64 -
Год
DateилиDateTimeв видеInt64.
-
month(dt::TimeType) → Int64 -
Месяц
DateилиDateTimeв видеInt64.
-
week(dt::TimeType) → Int64 -
Возвращает ISO неделю
DateилиDateTimeв видеInt64. Обратите внимание, что первая неделя года — это неделя, содержащая первый четверг года, что может привести к тому, что даты до 4 января будут в последней неделе предыдущего года. Например,week(Date(2005,1,1))— 53-я неделя 2004 года.
-
day(dt::TimeType) → Int64 -
День месяца
DateилиDateTimeв видеInt64.
-
hour(dt::DateTime) → Int64 -
Час дня
DateTimeв видеInt64.
-
minute(dt::DateTime) → Int64 -
Минута
DateTimeв видеInt64.
-
second(dt::DateTime) → Int64 -
Секунда
DateTimeв видеInt64.
-
millisecond(dt::DateTime) → Int64 -
Миллисекунда
DateTimeв видеInt64.
-
Year(dt::TimeType) → Year -
Год
DateилиDateTimeв видеYear.
-
Month(dt::TimeType) → Month -
Месяц
DateилиDateTimeв видеMonth.
-
Week(dt::TimeType) → Week -
Неделя
DateилиDateTimeв видеWeek. Подробности см. вweek().
-
Day(dt::TimeType) → Day -
День
DateилиDateTimeв видеDay.
-
Hour(dt::DateTime) → Hour -
Час
DateTimeв видеHour.
-
Minute(dt::DateTime) → Minute -
Минута
DateTimeв видеMinute.
-
Second(dt::DateTime) → Second -
Секунда
DateTimeв видеSecond.
-
Millisecond(dt::DateTime) → Millisecond -
Миллисекунда
DateTimeв видеMillisecond.
-
yearmonth(dt::TimeType) → (Int64, Int64) -
Одновременное возвращение года и месяца
DateилиDateTime.
-
monthday(dt::TimeType) → (Int64, Int64) -
Одновременное возвращение месяца и дня
DateилиDateTime.
-
yearmonthday(dt::TimeType) → (Int64, Int64, Int64) -
Одновременное возвращение года, месяца и дня
DateилиDateTime.
Функции запроса
-
dayname(dt::TimeType; locale="english") → AbstractString -
Возвращает полное имя дня недели для
DateилиDateTimeв заданномlocale.
-
dayabbr(dt::TimeType; locale="english") → AbstractString -
Возвращает сокращенное имя дня недели для
DateилиDateTimeв заданномlocale.
-
dayofweek(dt::TimeType) → Int64 -
Возвращает день недели как
Int64, с1 = Monday, 2 = Tuesday, etc..
-
dayofmonth(dt::TimeType) → Int64 -
День месяца
DateилиDateTimeв видеInt64.
-
dayofweekofmonth(dt::TimeType) → Int -
Для дня недели
dt, возвращает номер в месяцеdt. Если день неделиdt— понедельник, то1 = First Monday of the month, 2 = Second Monday of the month, etc.В диапазоне 1:5.
-
daysofweekinmonth(dt::TimeType) → Int -
Для дня недели
dt, возвращает общее количество этого дня недели в месяцеdt. Возвращает 4 или 5. Полезно в временных выражениях для указания последнего дня недели в месяце, включивdayofweekofmonth(dt) == daysofweekinmonth(dt)в функцию корректировки.
-
monthname(dt::TimeType; locale="english") → AbstractString -
Возвращает полное название месяца для
DateилиDateTimeв заданномlocale.
-
monthabbr(dt::TimeType; locale="english") → AbstractString -
Возвращает сокращенное название месяца для
DateилиDateTimeв заданномlocale.
-
daysinmonth(dt::TimeType) → Int -
Возвращает количество дней в месяце
dt. Значение будет 28, 29, 30 или 31.
-
isleapyear(dt::TimeType) → Bool -
Возвращает
true, если годdtвисокосный.
-
dayofyear(dt::TimeType) → Int -
Возвращает день года для
dt, где 1 января — день 1.
-
daysinyear(dt::TimeType) → Int -
Возвращает 366, если год
dtвисокосный, иначе возвращает 365.
-
quarterofyear(dt::TimeType) → Int -
Возвращает квартал, в котором находится
dt. Диапазон значений 1:4.
-
dayofquarter(dt::TimeType) → Int -
Возвращает день текущего квартала
dt. Диапазон значений 1:92.
Функции корректировки
-
trunc(dt::TimeType, ::Type{Period}) → TimeType -
Усекает значение
dtв соответствии с указанным типомPeriod. Например, еслиdt—1996-01-01T12:30:00, тоtrunc(dt,Day) == 1996-01-01T00:00:00.
-
firstdayofweek(dt::TimeType) → TimeType -
Корректирует
dtна понедельник своей недели.
-
lastdayofweek(dt::TimeType) → TimeType -
Корректирует
dtна воскресенье своей недели.
-
firstdayofmonth(dt::TimeType) → TimeType -
Корректирует
dtна первый день своего месяца.
-
lastdayofmonth(dt::TimeType) → TimeType -
Корректирует
dtна последний день своего месяца.
-
firstdayofyear(dt::TimeType) → TimeType -
Корректирует
dtна первый день своего года.
-
lastdayofyear(dt::TimeType) → TimeType -
Корректирует
dtна последний день своего года.
-
firstdayofquarter(dt::TimeType) → TimeType -
Корректирует
dtна первый день своего квартала.
-
lastdayofquarter(dt::TimeType) → TimeType -
Корректирует
dtна последний день своего квартала.
-
tonext(dt::TimeType, dow::Int;same::Bool=false) → TimeType -
Корректирует
dtна следующий день недели, соответствующийdowс1 = Monday, 2 = Tuesday, etc. Установкаsame=trueпозволяет рассматривать текущийdtкак следующийdow, что исключает корректировку.
-
toprev(dt::TimeType, dow::Int;same::Bool=false) → TimeType -
Корректирует
dtна предыдущий день недели, соответствующийdowс1 = Monday, 2 = Tuesday, etc. Установкаsame=trueпозволяет рассматривать текущийdtкак предыдущийdow, что исключает корректировку.
-
tofirst(dt::TimeType, dow::Int;of=Month) → TimeType -
Корректирует
dtна первоеdowмесяца. В качестве альтернативы,of=Yearскорректирует на первоеdowгода.
-
tolast(dt::TimeType, dow::Int;of=Month) → TimeType -
Корректирует
dtна последнееdowмесяца. В качестве альтернативы,of=Yearскорректирует на последнееdowгода.
-
tonext(func::Function, dt::TimeType;step=Day(1), negate=false, limit=10000, same=false) → TimeType -
Корректирует
dtпутем итерации не болееlimitитераций с шагомstepдо тех пор, покаfuncне вернётtrue.funcдолжен принимать один аргументTimeTypeи возвращатьBool.sameпозволяетdtрассматривать как удовлетворяющееfunc.negateзаставит процесс корректировки завершиться, когдаfuncвернётfalseвместоtrue.
-
toprev(func::Function, dt::TimeType;step=Day(-1), negate=false, limit=10000, same=false) → TimeType -
Корректирует
dtпутем итерации не болееlimitитераций с шагомstepдо тех пор, покаfuncне вернётtrue.funcдолжен принимать один аргументTimeTypeи возвращатьBool.sameпозволяетdtрассматривать как удовлетворяющееfunc.negateзаставит процесс корректировки завершиться, когдаfuncвернётfalseвместоtrue.
-
recur{T<:TimeType}(func::Function, dr::StepRange{T};negate=false, limit=10000) → Vector{T} -
funcпринимает один аргумент TimeType и возвращаетBool, указывающий, следует ли «включать» вход в конечный набор.recurприменяетfuncк каждому элементу в диапазонеdr, включая те элементы, для которыхfuncвозвращаетtrueв результирующем массиве, если неnegate=true, тогда включаются только элементы, для которыхfuncвозвращаетfalse.
Периоды
-
Year(v) -
Month(v) -
Week(v) -
Day(v) -
Hour(v) -
Minute(v) -
Second(v) -
Millisecond(v) -
Создаёт тип
Periodсо значениемv. Ввод должен быть без потерь преобразуем вInt64.
-
CompoundPeriod(periods) → CompoundPeriod -
Создаёт
CompoundPeriodизVectorPeriod. Конструктор автоматически упростит периоды до канонической формы по следующим правилам:- Все
Periodодного типа складываются вместе - Любой
Periodдостаточно большой, чтобы быть частично представленным более грубымPeriod, разбивается на несколькоPeriod(например,Hour(30)становитсяDay(1) + Hour(6)). -
Periodс противоположными знаками объединяются, когда это возможно (например,Hour(1) - Day(1)становится-Hour(23)).
Из-за канонизации
CompoundPeriodтакже полезен для преобразования временных периодов в более понятные для человека формы.Примеры
julia> Dates.CompoundPeriod([Dates.Hour(12), Dates.Hour(13)]) 1 day, 1 hour julia> Dates.CompoundPeriod([Dates.Hour(-1), Dates.Minute(1)]) -59 minutes julia> Dates.CompoundPeriod([Dates.Month(1), Dates.Week(-2)]) 1 month, -2 weeks julia> Dates.CompoundPeriod(Dates.Minute(50000))) 4 weeks, 6 days, 17 hours, 20 minutes
- Все
-
default(p::Period) → Period -
Возвращает разумное «стандартное» значение для введённого периода, возвращая
one(p)для года, месяца и дня, иzero(p)для часа, минуты, секунды и миллисекунды.
Функции округления
Значения Date и DateTime могут быть округлены до заданной точности (например, 1 месяц или 15 минут) с помощью floor, ceil, или round.
-
floor(dt::TimeType, p::Period) → TimeType -
Возвращает ближайшее
DateилиDateTimeменьше или равноdtс точностьюp.Для удобства
pможет быть типом вместо значения:floor(dt, Dates.Hour)это сокращение дляfloor(dt, Dates.Hour(1)).julia> floor(Date(1985, 8, 16), Dates.Month) 1985-08-01 julia> floor(DateTime(2013, 2, 13, 0, 31, 20), Dates.Minute(15)) 2013-02-13T00:30:00 julia> floor(DateTime(2016, 8, 6, 12, 0, 0), Dates.Day) 2016-08-06T00:00:00
-
ceil(dt::TimeType, p::Period) → TimeType -
Возвращает ближайшее
DateилиDateTimeбольше или равноdtс точностьюp.Для удобства
pможет быть типом вместо значения:ceil(dt, Dates.Hour)это сокращение дляceil(dt, Dates.Hour(1)).julia> ceil(Date(1985, 8, 16), Dates.Month) 1985-09-01 julia> ceil(DateTime(2013, 2, 13, 0, 31, 20), Dates.Minute(15)) 2013-02-13T00:45:00 julia> ceil(DateTime(2016, 8, 6, 12, 0, 0), Dates.Day) 2016-08-07T00:00:00
-
round(dt::TimeType, p::Period[, r::RoundingMode]) → TimeType -
Возвращает
DateилиDateTimeближайшее кdtс точностьюp. По умолчанию (RoundNearestTiesUp): при равенстве (например, округление 9:30 до ближайшего часа) значения округляются вверх.Для удобства
pможет быть типом вместо значения:round(dt, Dates.Hour)это сокращение дляround(dt, Dates.Hour(1)).julia> round(Date(1985, 8, 16), Dates.Month) 1985-08-01 julia> round(DateTime(2013, 2, 13, 0, 31, 20), Dates.Minute(15)) 2013-02-13T00:30:00 julia> round(DateTime(2016, 8, 6, 12, 0, 0), Dates.Day) 2016-08-07T00:00:00
Допустимые режимы округления для
round(::TimeType, ::Period, ::RoundingMode)-RoundNearestTiesUp(по умолчанию),RoundDown(floor) иRoundUp(ceil).
Следующие функции не экспортируются:
-
floorceil(dt::TimeType, p::Period) → (TimeType, TimeType) -
Одновременно возвращают
floorиceilDateилиDateTimeс точностьюp. Более эффективно, чем вызовfloorиceilпо отдельности.
-
epochdays2date(days) → Date -
Принимает количество дней с эпохи округления (
0000-01-01T00:00:00) и возвращает соответствующуюDate.
-
epochms2datetime(milliseconds) → DateTime -
Принимает количество миллисекунд с эпохи округления (
0000-01-01T00:00:00) и возвращает соответствующуюDateTime.
-
date2epochdays(dt::Date) → Int64 -
Принимает указанную
Dateи возвращает количество дней с эпохи округления (0000-01-01T00:00:00) какInt64.
-
datetime2epochms(dt::DateTime) → Int64 -
Принимает указанную
DateTimeи возвращает количество миллисекунд с эпохи округления (0000-01-01T00:00:00) какInt64.
Функции преобразования
-
today() → Date -
Возвращает часть даты
now().
-
unix2datetime(x) → DateTime -
Принимает количество секунд с эпохи Unix
1970-01-01T00:00:00и преобразует в соответствующуюDateTime.
-
datetime2unix(dt::DateTime) → Float64 -
Принимает заданную
DateTimeи возвращает количество секунд с эпохи Unix1970-01-01T00:00:00какFloat64.
-
julian2datetime(julian_days) → DateTime -
Принимает количество дней юлианского календаря с эпохи
-4713-11-24T12:00:00и возвращает соответствующуюDateTime.
-
datetime2julian(dt::DateTime) → Float64 -
Принимает заданную
DateTimeи возвращает количество дней юлианского календаря с эпохи-4713-11-24T12:00:00какFloat64.
-
rata2datetime(days) → DateTime -
Принимает количество дней Rata Die с эпохи
0000-12-31T00:00:00и возвращает соответствующуюDateTime.
-
datetime2rata(dt::TimeType) → Int64 -
Возвращает количество дней Rata Die с эпохи от заданной
DateилиDateTime.
Константы
Дни недели:
| Переменная | Сокр. | Значение (int) |
|---|---|---|
Monday | Mon | 1 |
Tuesday | Tue | 2 |
Wednesday | Wed | 3 |
Thursday | Thu | 4 |
Friday | Fri | 5 |
Saturday | Sat | 6 |
Sunday | Sun | 7 |
Месяцы года:
| Переменная | Сокр. | Значение (Цел.) |
|---|---|---|
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 |
© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/release-0.5/stdlib/dates/