Spec-Zone.ru › Julia 0.5

Даты и время

Типы дат и времени

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:

Код Совпадения Комментарий
y 1996, 96 Возвращает год 1996, 0096
Y 1996, 96 Возвращает год 1996, 0096. Эквивалентно y
m 1, 01 Совпадение 1 или 2-значных месяцев
u Jan Совпадение сокращённых названий месяцев в соответствии с ключевым словом locale
U January Совпадение полных названий месяцев в соответствии с ключевым словом locale
d 1, 01 Совпадение 1 или 2-значных дней
H 00 Совпадение часов
M 00 Совпадение минут
S 00 Совпадение секунд
s .500 Совпадение миллисекунд
e Mon, Tues Совпадение сокращённых названий дней недели
E Monday Совпадение полных названий дней недели
yyyymmdd 19960101 Совпадение фиксированной ширины года, месяца и дня

Символы, не перечисленные выше, обычно обрабатываются как разделители между частями даты и времени. Например, строка «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:

Код Примеры Комментарий
y 6 Числовой год фиксированной ширины
Y 1996 Числовой год минимальной ширины
m 1, 12 Числовой месяц минимальной ширины
u Jan Сокращённое название месяца из 3 символов в соответствии с ключевым словом locale
U January Полное название месяца в соответствии с ключевым словом locale
d 1, 31 Число месяца минимальной ширины
H 0, 23 Часы (24-часовой формат) минимальной ширины
M 0, 59 Минуты минимальной ширины
S 0, 59 Секунды минимальной ширины
s 000, 500 Миллисекунды минимальной шириной 3
e Mon, Tue Сокращённые названия дней недели
E Monday Полные названия дней недели

Количество последовательных символов кода указывает на ширину кода. Формат 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).

END_OF_DOCUMENT_MARKER
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 с использованием объекта DateFormat df.

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 на последний день своего квартала.

END_OF_DOCUMENT_MARKER ```
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 из Vector Period. Конструктор автоматически упростит периоды до канонической формы по следующим правилам:

  • Все 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 и ceil Date или 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 и возвращает количество секунд с эпохи Unix 1970-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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API