Javascript: Текущая дата и время (все методы получения)
Для получения значений даты и времени используются следующие методы:
1const date =newDate('September 20, 2020 11:10:05'); 2 3date.getTime(); 4 5 6date.getFullYear(); 7 8 9date.getDate(); 10 11 12date.getDay(); 13 14 15date.getMonth(); 16 17 18date.getHours(); 19 20 21date.getMinutes(); 22 23 24date.getSeconds(); 25 26 27date.getMilliseconds(); 28 29 30date.getTimezoneOffset(); 31
Также есть возможность сразу получать значения даты и времени привязанных
не локальной зоне компьютера пользователя, а к зоне UTC.
1date.getUTCFullYear(); 2 3 4date.getUTCDate(); 5 6 7date.getUTCDay(); 8 9 10date.getUTCMonth(); 11 12 13date.getUTCHours(); 14 15 16date.getUTCMinutes(); 17 18 19date.getUTCSeconds(); 20 21 22date.getUTCMilliseconds(); 23
Функция PHP strftime()
Функция PHP используется для преобразования удобочитаемой строки даты в метку времени Unix (количество секунд с 1 января 1970 года 00:00:00 по Гринвичу).
Синтаксис
strtotime(time, now)
Аргументы: строка формата и абсолютное время. Второй аргумент необязателен. Возвращает строку с заданной или текущей датой в указанном формате.
Следующий пример создает дату и время из функции :
Результат выполнения кода:
Дата создания 2020-04-15 10:30:00pm
PHP очень умен в преобразовании строки в дату, поэтому вы можете вводить различные значения. Например, можем из строки получить дату завтрашнего дня, следующей субботы и дату ровно через семь месяцев:
В следующем примере вы можете посмотреть даты ближайших семи суббот начиная с момента изучения данного урока PHP:
Определите свой часовой пояс
Если сервер, на котором расположен ваш сайт, находится в другой стране или настроен для другого часового пояса, то текущее время, возвращаемое функцией date(), будет отличаться от реального времени вашего часового пояса.
Итак, если вам нужно, чтобы время было правильным для вашего региона, вы можете установить часовой пояс, который хотите использовать.
Функция устанавливает временную зону по умолчанию для всех функций даты и времени в скрипте.
date_default_timezone_set( string $timezone_identifier )
Параметр — это идентификатор временной зоны.
Функция устанавливает часовой пояс, который по умолчанию используется всеми дата/время функциями в сценарии. Чтобы изменить значение часового пояса для вашего веб-сайта, достаточно в начале скрипта задать функцию , параметром которой будет служить название часового пояса.
Пример использования:
date_default_timezone_set( ‘Europe/Kiev’ );date_default_timezone_set( ‘Europe/Moscow’ );
В приведенном ниже примере для часового пояса устанавливается значение ‘Europe/Moscow’, а затем выводится текущее время в указанном формате:
Внесение значений даты и времени в столбцы таблицы
Рассмотрим, как вносятся значения date MySQL в таблицу. Чтобы продемонстрировать это, мы продолжим использовать таблицу orders, которую создали в начале статьи.
Мы начнем с добавления новой строки заказа. Значение поля order_no будет автоматически увеличиваться на 1, так что нам остается вставить значения order_item, дату создания заказа и дату доставки. Дата заказа — это время, в которое вставляется заказ, поэтому мы можем использовать функцию NOW(), чтобы внести в строку текущую дату и время.
Дата доставки — это период времени после даты заказа, которую мы можем вернуть, используя функцию MySQL DATE ADD(), которая принимает в качестве аргументов дату начала (в нашем случае NOW ()) и INTERVAL (в нашем случае 14 дней). Например:
INSERT INTO orders (order_item, order_date, order_delivery) VALUES ('iPhone 8Gb', NOW(), DATE_ADD(NOW(), INTERVAL 14 DAY));
Данный запрос создает заказ для указанного элемента с датой, временем выполнения заказа, и интервалом через две недели после этого в качестве даты доставки:
mysql> SELECT * FROM orders; +----------+------------+---------------------+----------------+ | order_no | order_item | order_date | order_delivery | +----------+------------+---------------------+----------------+ | 1 | iPhone 8Gb | 2007-10-23 11:37:55 | 2007-11-06 | +----------+------------+---------------------+----------------+ 1 row in set (0.00 sec)
Точно так же можно заказать товар с датой доставки через два месяца:
mysql> INSERT INTO orders (order_item, order_date, order_delivery) VALUES ('ipod Touch 4Gb', NOW(), DATE_ADD(NOW(), INTERVAL 2 MONTH)); Query OK, 1 row affected (0.00 sec) mysql> SELECT * FROM orders; +----------+----------------+---------------------+----------------+ | order_no | order_item | order_date | order_delivery | +----------+----------------+---------------------+----------------+ | 1 | iPhone 8Gb | 2007-10-23 11:37:55 | 2007-11-06 | | 2 | ipod Touch 4Gb | 2007-10-23 11:51:09 | 2007-12-23 | +----------+----------------+---------------------+----------------+ 2 rows in set (0.00 sec)
Спарсить произвольный timestamp в ISO 8601 с минимумом подключаемых библиотек
У Python ограниченная поддержка анализа временных меток ISO 8601. Для того, чтобы использовать — вам нужно точно знать его формат. Сложность в том, что в с временной меткой ISO 8601 есть 6-разрядная дробь:
Если дробная часть равна 0, то она не выводится:
Но для этих двух вариантов используется другой формат для .Кроме того, не поддерживает ни минуты, ни обозначения часовых поясов с минутами. Например, 2016-07-22 09: 25: 59 + 0300 проанализируется, а стандартный формат вида нет.
Существует библиотека из одного файла — , которая правильно анализирует только временные метки ISO 8601.
Он поддерживает дроби, часовые пояса и T разделитель внутри единственной функции:
Если часовой пояс не установлен, значение соответствует UTC. Зона по умолчанию может быть изменена с помощью ключевого слова . Если вместо значения по умолчанию передаётся , то тогда те значения даты и времени, у которых нет определенного часового значения, устанавливаются вместо простых значений даты и времени:
Функция PHP mktime()
Необязательный параметр функции указывает временную метку. Если она не указано, будут использоваться текущая дата и время (как в примерах выше).
Но если вам нужно получить метку времени в прошлом или будущем, то сделать это можно с помощью функции . Вам нужно указать нужную дату, и она возвращается с меткой времени Unix. Метка времени Unix содержит количество секунд между эпохой Unix (1 января 1970 г., 00:00:00 GMT) и указанным временем.
Синтаксис данной функции следующий:
mktime(hour, minute, second, month, day, year)
Здесь используются следующие данные:
- Количество часов, прошедших с начала дня, указанного параметрами month, day и year.
- Количество минут, прошедших от начала часа, указанного параметром hour.
- Количество секунд, прошедших от начала минуты, указанной параметром minute.
- Количество месяцев, прошедших с конца предыдущего года.
- Количество дней, прошедших с конца предыдущего месяца.
- Номер года, может быть указан двумя или четырьмя цифрами.
Аргументы могут быть опущены в порядке справа налево. В этом случае их значения по умолчанию равны соответствующим компонентам локальной даты/времени.
Функцию удобно использовать для выполнения арифметических операций с датами, так как она вычисляет верные значения при некорректных аргументах. Например, в следующем примере каждая строка выведет «Jan-01-1921»:
Попробуй сам
Если вы хотите получить дату завтрашнего дня, вы можете использовать следующий код:
Попробуй сам
В приведенном примере мы использовали функцию и добавили 1 день к параметру дня, чтобы получить дату завтрашнего дня.
Функция переводит заданную дату в формат . Формат timestamp — это количество секунд, прошедшее с 1-го января 1970 года по заданный момент времени.
В следующем примере получим разницу в секундах между 1970 годом и 31.12.2025, 12:59:59:
WeekDay
Функция WeekDay возвращает целое число от 1 до 7, которое представляет день недели для указанной даты.
Параметр/Описание
- Дата — требуемый параметр. День недели вернет указанную дату. Firstdayofweek — необязательный параметр. Задает первый день недели. Он может принимать следующие значения. 0 = vbUseSystemDayOfWeek — настройка API поддержки национальных языков (NLS) 1 = vbSunday — воскресенье 2 = vbMonday — понедельник 3 = vbВперед — вторник 4 = vbWednesday — среда 5 = vbThursday — четверг 6 = vbFriday — пятница 7 = vbSaturday — суббота
пример
Добавьте кнопку и добавьте следующую функцию.
Sub Constant_demo_Click() msgbox("Line 1: " & Weekday("2013-05-16",1)) msgbox("Line 2: " & Weekday("2013-05-16",2)) msgbox("Line 3: " & Weekday("2013-05-16",2)) msgbox("Line 4: " & Weekday("2010-02-16")) msgbox("Line 5: " & Weekday("2010-02-17")) msgbox("Line 6: " & Weekday("2010-02-18")) End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Функция, которая возвращает целое число (от 1 до 7), которое представляет день недели в течение указанного дня.
Синтаксис
Параметр — Описание
- Weekday — требуемый параметр. Номер дня недели.
- Toabbreviate — необязательный параметр. Булевское значение, указывающее, следует ли сокращать имя месяца. Если оставить пустым, значение по умолчанию будет считаться False.
- Firstdayofweek — необязательный параметр. Задает первый день недели.
- = vbUseSystemDayOfWeek — настройка API поддержки национальных языков (NLS)
- 1 = vbSunday — воскресенье
- 2 = vbMonday — понедельник
- 3 = vbTuesday — вторник
- 4 = vbWednesday — среда
- 5 = vbThursday — четверг
- 6 = vbFriday — пятница
- 7 = vbSaturday — суббота
пример
Добавьте кнопку и добавьте следующую функцию.
Sub Constant_demo_Click() msgbox("Line 1 : " & WeekdayName(3)) msgbox("Line 2 : " & WeekdayName(2,True)) msgbox("Line 3 : " & WeekdayName(1,False)) msgbox("Line 4 : " & WeekdayName(2,True,0)) msgbox("Line 5 : " & WeekdayName(1,False,1)) End Sub
Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.
Функция, которая возвращает имя дня недели для указанного дня.
Использование функций при работе с датами и временем
Создание даты и времени в разных часовых поясах
Все объекты по умолчанию не относятся ни к одному часовому поясу. Чтобы привязать их к определенному часовому поясу — им нужно назначить объект , который привязывает функцию даты и времени к стандарту UTC.
Пересчёт часовых поясов
Для часовых поясов, которые фиксировано смещаются относительно UTC, в Python 3.2+ в модуле есть класс в котором реализован , принимающий параметры и имя (необязательно):
Python 3.x 3.2
Для Python-версий ниже 3.2 необходимо использовать стороннюю библиотеку. Например, . предоставляет эквивалентный класс , который (tzoffset с версии 2.5.3) принимает аргументы вида , где указано в секундах:
Python 3.x 3.2
Python 2.x 2.7
Часовые пояса с переходом на летнее время
Для часовых зон с летним временем в стандартных библиотеках python нет стандартных классов. Поэтому нужно использовать стороннюю библиотеку. Есть и — популярные библиотеки, в которых представлены классы часовых поясов.
Помимо стандартных часовых поясов, в есть классы часовых поясов, в которых используется летнее время (см. Документацию для модуля tz ). Можете использовать метод для получения объекта часового пояса, который затем можно передать непосредственно в :
ВНИМАНИЕ. Начиная с версии 2.5.3, обрабатывает неоднозначные даты и всегда будет назначен по умолчанию для более поздней даты
Невозможно создать объект с текущим часовым поясом, например, , так как это происходит во время перехода на летнее время.
В крайних случаях при использовании это можно сделать вручную, но в часовые пояса не должны быть непосредственно привязаны через конструктор. Вместо этого временная зона должна быть присоединена к часовому поясу с использованием метода localize:
Если вы рассчитываете дату и время в часовом поясе — вы должны либо выполнить вычисления для UTC (чтобы получить абсолютное истекшее время), либо используйте :
Как автоматически заполнять даты в Excel
Вставка текущих даты и времени в ячейку
Установка Компонентов Даты и Времени
Для установки отдельных компонентов даты или времени можно использовать следующие методы:
1const date =newDate('September 20, 2020 11:10:05'); 2 3 4date.setDate(22); 5 6 7 8const newDate =newDate(1600762205000); 9
Другие методы установки отдельных компонентов объекта :
1 2date.setFullYear(новое значение) 3date.setMonth(month) 4date.setHours(hour) 5date.setMinutes(min) 6date.setSeconds(sec) 7date.setMilliseconds(ms) 8date.setTime(ms)
Методы , и помимо базовых значений принимают значения минут,
секунд или миллисекунд для более точных установок. Формат ввода выглядит следующим бразом:
1setHours(18,45,20,10); 2setMinutes(min, sec, ms); 3setSeconds(sec, ms);
Стоить помнить, что если мы укажем обновленное значение часов следующим образом , то это приведет к обновлению нашей даты (прибавится 3 дня).
Функция DateDiff
Спарсить строку с двухбуквенным часовым поясом и перевести в UTC
Используя библиотеку можно парсить временные метки с коротким буквенным именем часового пояса.
Для дат, с короткими названиями зон или аббревиатурами, которые неоднозначны или недоступны в стандартной базе данных, необходимо указать возможные буквенные обозначения между аббревиатурой часового пояса и объектом .
Например, CST. Это может быть Центральным стандартным временем, Стандартным временем в Китае, Стандартным временем Кубы и т.д. Полный список можно посмотреть здесь.
Дальнейшие действия:
При использовании с этим методом часового пояса — часовой пояс правильно не локализуется:
Привязка часового пояса к дате и времени:
Если вы используете этот метод, вы должны повторно использовать для простых значений даты и времени:
Функция PHP date()
Функция выводит текущие дату и время в заданном формате. Также функция может конвертировать формат отметки времени (временная метка, метка времени или timestamp) в удобочитаемый формат.
Параметры функции date():
- Обязательный. Задает формат метки времени
- Необязательный. Задает отметку времени. По умолчанию текущая дата и время
Функция возвращает строку, которая отформатирована в соответствии с указанным шаблоном . Параметр задает метку времени. Если не задан, тогда используется текущее системное время.
Примечание: Отметка времени — это последовательность символов, обозначающая дату и / или время, когда произошло определенное событие.
Обязательный параметр функции указывает, как форматировать дату (или время). Формат задается управляющими командами (латиницей), при этом можно вставлять любые разделители между ними (дефисы, двоеточие и так далее).
Ниже представлена таблица с расшифровкой некоторых символов в строке :
Символ в строке format | Описание | Пример возвращаемого значения |
---|---|---|
День | — | — |
d | День месяца с 2-мя цифрами | от 01 до 31 |
D | День недели в текстовом формате, 3 символа | от Mon до Sun |
z | Порядковый номер дня в году (начиная с 0) | От до 365 |
Месяц | — | — |
F | Полное название месяца, например, January или March | от January до December |
m | Порядковый номер месяца, 2 цифры | от 01 до 12 |
M | Сокращенное название месяца, 3 символа | от Jan до Dec |
Год | — | — |
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2019 |
y | Порядковый номер года, 2 цифры | Примеры: 99, 19 |
Время | — | — |
a | Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре | am или pm |
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
g | Часы в 12-часовом формате | от 1 до 12 |
G | Часы в 24-часовом формате | от до 23 |
h | Часы в 12-часовом формате | от 01 до 12 |
H | Часы в 24-часовом формате, 2 цифры | от 00 до 23 |
i | Минуты, 2 цифры | от 00 до 59 |
s | Секунды, 2 цифры | от 00 до 59 |
Ниже представлены некоторые примеры получения фактической информации о дате и времени:
Преобразование строки в datetime и наоборот
Строка в datetime через .strptime()
Если дата содержится в строковом формате, Питон не сможет извлечь из нее компоненты. Предварительно строку нужно преобразовать. Для этого есть метод .strptime().
1 |
# дана строка с датой 2 декабря 2007 года и временем 12 часов 30 минут и 45 секунд str_to_dt=’2007-12-02 12:30:45′ type(str_dt) |
1 | str |
Преобразуем эту строку в объект datetime с помощью метода .strptime().
1 |
res_dt=datetime.strptime(str_to_dt,’%Y-%m-%d %H:%M:%S’) print(res_dt) print(type(res_dt)) |
1 |
2007-12-02 12:30:45 <class ‘datetime.datetime’> |
Как вы видите, сначала мы передаём этому методу саму строку, а затем тот формат, в котором содержится дата и время (иначе Питон не поймет, к чему относится конкретное число).
Давайте расшифруем каждое из обозначений:
- %Y — год в формате ГГГГ, например: 1995, 2003 и т.д.
- %m — месяц в виде числа с нулями, например, январь — 01, февраль — 02 и т.д.
- %d — день месяца в виде числа с нулями, например: 01, 02, …, 31
- %H — час в 24-часовом формате в виде числа с нулями, например: 00, 01, …, 23
- %M — минуты в виде числа с нулями, например: 00, 01, …, 59
- %S — секунды в виде числа с нулями, например: 00, 01, …, 59
Дефисы, пробелы, двоеточия или, например, запятые — тоже элементы формата и их тоже нужно указывать.
Datetime в строку через .strftime()
Обратное преобразование также возможно. Это может быть полезно, если мы захотим вывести дату и время в строго определенном формате.
1 |
# вначале создадим объект datetime и передадим ему 19 ноября 2002 года dt_to_str=datetime(2002,11,19) type(dt_to_str) |
1 |
# преобразуем объект в строку в формате «день недели, месяц число, год» res_str=datetime.strftime(dt_to_str,’%A, %B %d, %Y’) print(res_str) print(type(res_str)) |
1 |
Tuesday, November 19, 2002 <class ‘str’> |
Метод .strftime() можно применять непосредственно к объекту datetime.
1 | dt_to_str.strftime(‘%A, %B %d, %Y’) |
1 | ‘Tuesday, November 19, 2002’ |
Расшифруем обозначения:
- %A — полное название дня недели, например: Sunday, Monday, …
- %B — полное название месяца, например: January, February
- %d — день месяца в виде числа с нулями, например: 01, 02, …, 31
- %Y — год в формате ГГГГ, например: 1999, 2003 и т.д.
Более подробный перечень обозначений можно найти в ⧉.
Как рассчитать текущий возраст по дате рождения в Excel
Как выбрать дату на текущий месяц во всех ячейках таблицы Excel
Стандартное нормальное распределение
Функция СЕГОДНЯ
Класс datetime.timedelta
Объект представляет разницу между двумя моментами времени.
Пример 12: разница между двумя моментами времени.
from datetime import datetime, date t1 = date(year = 2018, month = 7, day = 12) t2 = date(year = 2017, month = 12, day = 23) t3 = t1 - t2 print("t3 =", t3) t4 = datetime(year = 2018, month = 7, day = 12, hour = 7, minute = 9, second = 33) t5 = datetime(year = 2019, month = 6, day = 10, hour = 5, minute = 55, second = 13) t6 = t4 - t5 print("t6 =", t6) print("type of t3 =", type(t3)) print("type of t6 =", type(t6))
Когда вы запустите программу, вывод будет следующим:
Обратите внимание, что и , и имеют тип. Пример 13: разница между двумя объектами timedelta
Пример 13: разница между двумя объектами timedelta.
from datetime import timedelta t1 = timedelta(weeks = 2, days = 5, hours = 1, seconds = 33) t2 = timedelta(days = 4, hours = 11, minutes = 4, seconds = 54) t3 = t1 - t2 print("t3 =", t3)
Когда вы запустите программу, вывод будет следующим:
Здесь мы создали два объекта — и , и их разница выводится на экран.
Пример 14: отрицательный объект timedelta.
from datetime import timedelta t1 = timedelta(seconds = 33) t2 = timedelta(seconds = 54) t3 = t1 - t2 print("t3 =", t3) print("t3 =", abs(t3))
Когда вы запустите программу, вывод будет следующим:
Пример 15: интервал времени в секундах.
Вы можете получить общее количество секунд объекта , используя метод .
from datetime import timedelta t = timedelta(days = 5, hours = 1, seconds = 33, microseconds = 233423) print("total seconds =", t.total_seconds())
Когда вы запустите программу, вывод будет следующим:
Вы также можете найти сумму двух моментов времени, используя оператор . Кроме того, вы можете умножить и разделить объект на целые числа и числа с плавающей точкой.
Больше информации о вы можете найти в .
Прибавление и вычитание временного интервала
С датами и временем часто приходится проводить арифметические операции: прибавлять к заданной дате определенный временной интервал или вычитать. Прибавление временного интервала можно осуществить тремя способами:
- Функция DATE_ADD(исходная_дата, INTERVAL выражение тип);
- Функция ADDDATE (исходная_дата, INTERVAL выражение тип);
- Выражение: исходная_дата + INTERVAL выражение тип.
Вычитание временного интервала также можно осуществить тремя способами:
- Функция DATE_SUB(исходная_дата, INTERVAL выражение тип);
- Функция SUBDATE (исходная_дата, INTERVAL выражение тип);
- Выражение: исходная_дата — INTERVAL выражение тип.
Исходная_дата – это дата, к которой прибавляется или вычитается определенный интервал времени.
Выражение – это сам прибавляемый или вычитаемый интервал времени, заданный в текстовом формате.
Тип – аргумент, указывающий тип прибавляемого интервала. Этот параметр уточняет, как правильно интерпретировать выражение. Например, выражение ‘3:24’ можно интерпретировать и как 3 часа 24 минуты, и как 3 минуты 24 секунды. Если указан тип «MINUTE_SECOND», то интерпретация будет однозначной.
Связь между аргументами выражение и тип показана в таблице :
Пример 2
Следующие три команды делают одну и ту же операцию. Они прибавляют секунду к заданному времени.
SELECT ‘2016-09-10 23:59:59’ + Interval 1 SECOND;
SELECT ADDDATE(‘2016-09-10 23:59:59’, Interval 1 SECOND);
SELECT DATE_ADD(‘2016-09-10 23:59:59’, Interval 1 SECOND);
Результат всех трех команд одинаковый: 2016-09-11 00:00:00.
Пример 3
Следующие три команды вычисляют дату предшествующую заданной ровно на полтора года:
SELECT DATE_SUB(‘2016-09-10 23:59:59’, Interval ‘1-6’ YEAR_MONTH);
SELECT SUBDATE(‘2016-09-10 23:59:59’, Interval ‘1-6’ YEAR_MONTH);
SELECT ‘2016-09-10 23:59:59’ — Interval ‘1-6’ YEAR_MONTH;
Результат всех трех команд одинаковый : 2015-03-10 23:59:59.
4.1. Модуль datetime¶
Основной функционал для работы с датами и временем сосредоточен в модуле datetime в виде следующих классов:
- date
- time
- datetime
4.1.1. Класс date
Для работы с датами воспользуемся классом date, который определен в модуле datetime. Для создания объекта date мы можем использовать конструктор date, который последовательно принимает три параметра: год, месяц и день:
date(year, month, day)
Например, создадим какую-либо дату:
import datetime yesterday = datetime.date(2017,5, 2) print(yesterday) # 2017-05-02
Если необходимо получить текущую дату, то можно воспользоваться методом today():
from datetime import date today = date.today() print(today) # 2017-05-03 print("{}.{}.{}".format(today.day, today.month, today.year)) # 2.5.2017
С помощью свойств day, month, year можно получить соответственно день, месяц и год.
4.1.2. Класс time
За работу с временем отвечает класс time. Используя его конструктор, можно создать объект времени:
time()
Конструктор последовательно принимает часы, минуты, секунды и микросекунды. Все параметры необязательные, и если мы какой-то параметр не передадим, то соответствующее значение будет инициализироваться нулем:
from datetime import time current_time = time() print(current_time) # 00:00:00 current_time = time(16, 25) print(current_time) # 16:25:00 current_time = time(16, 25, 45) print(current_time) # 16:25:45
4.1.3. Класс datetime
Класс datetime из одноименного модуля объединяет возможности работы с датой и временем. Для создания объекта datetime можно использовать следующий конструктор:
datetime(year, month, day )
Первые три параметра, представляющие год, месяц и день, являются обязательными. Остальные необязательные, и если мы не укажем для них значения, то по умолчанию они инициализируются нулем:
from datetime import datetime deadline = datetime(2017, 5, 10) print(deadline) # 2017-05-10 00:00:00 deadline = datetime(2017, 5, 10, 4, 30) print(deadline) # 2017-05-10 04:30:00
Для получения текущих даты и времени можно вызвать метод now():
from datetime import datetime now = datetime.now() print(now) # 2017-05-03 11:18:56.239443 print("{}.{}.{}{}{}".format(now.day, now.month, now.year, now.hour, now.minute)) # 3.5.2017 11:21 print(now.date()) print(now.time())
С помощью свойств day, month, year, hour, minute, second можно получить отдельные значения даты и времени. А через методы date() и time() можно получить отдельно дату и время соответственно.
Использование Библиотеки Moment.js
Moment.js
Рассмотрим несколько примеров ее использования.
Сначала устанавливаем пакет с помощью команды .
1 2import moment from ‘moment’; 3 4 5const date =moment(); 6 7 8 9const date =moment('September 20, 2020'); 10 11 12const date =moment().format('MM Do, YYYY');
Список опций форматирования доступен в документации библиотеки (пара примеров):
- — 2017-12-14
- — 16:34:10
Один из методов библиотеки, которые часто приходится использовать – ,
который возвращает количество времени, которое прошло с указанной даты.
1moment('2020-06-20').fromNow(); 2
Я использую этот метод для отображения времени, которое прошло с даты публикации постов в блоге.
Подведем итог
Сегодня мы посмотрели на возможности Питона по работе с датой и временем. В частности, узнали про классы datetime и timedelta модуля datetime и научились работать с объектами этих классов:
- Мы рассмотрели структуру объекта datetime
- Узнали про функцию now()
- Научились извлекать timestamp и вручную создавать объект datetime
- Посмотрели, как преобразовывать строку в объект datetime и наоборот
- Изучили возможности сравнения дат, вычисления промежутка между датами и выполнили несложную арифметику дат с помощью объекта timedelta
- Наконец, мы познакомились с конструкцией try/except и оператором pass и применили их к обработке различных форматов дат
Вопросы для закрепления
С какими классами модуля datetime мы познакомились на этом занятии?
Посмотреть правильный ответ
Ответ: классом datetime и классом timedelta
Чему соответствует формат ‘%c’?
Посмотреть правильный ответ
Ответ: формат ‘%c’ выводит полную дату и время, например: Sun Nov 21 10:38:12 2021
Как еще в библиотеке Pandas мы можем превратить столбец в индекс и затем преобразовать в объект datetime? Подсказка: обратитесь к лекции по временным рядам.
Посмотреть правильный ответ
Ответ: мы можем последовательно применить .set_index() и pd.to_datetime()
В ноутбуке к лекции приведены ⧉.
На следующем занятии мы поговорим про функции в Питоне.