Работа с датами и временем
Содержание:
- TimedeltaIndex
- Timezone Constants¶
- datetime.date Class
- Как преобразовать?
- How to Format a timedelta as string
- Преобразование даты и времени в строку
- Python TimeDelta Операции
- Python TimeDelta
- Python Tutorial
- Использование сторонних библиотек
- Модуль datetime
- Как визуализировать фондовый рынок с DateTime Numpy?
- Преобразование часовых поясов
- How to convert a timedelta to seconds, minutes, hours, or days
- Python DateTime для строки
- Атрибуция
- Get the current Date only
TimedeltaIndex
Чтобы сгенерировать индекс с дельтой времени, вы можете использовать конструктор или .
Используя , вы можете передавать строковые , , или np.timedelta64 объекты. Передача будет представлять пропущенные значения.
In : pd.TimedeltaIndex( ....: ....: ) ....: Out: TimedeltaIndex(, dtype='timedelta64', freq=None)
Строку infer можно передать, чтобы установить частоту индекса как предполагаемую частоту при создании:
In : pd.TimedeltaIndex(, freq="infer") Out: TimedeltaIndex(, dtype='timedelta64', freq='10D')
Генерация диапазонов временных дельт
Подобно , вы можете создавать регулярные диапазоны , используя . Частота по умолчанию для — календарный день:
In : pd.timedelta_range(start="1 days", periods=5) Out: TimedeltaIndex(, dtype='timedelta64', freq='D')
С можно использовать различные комбинации , и :
In : pd.timedelta_range(start="1 days", end="5 days") Out: TimedeltaIndex(, dtype='timedelta64', freq='D') In : pd.timedelta_range(end="10 days", periods=4) Out: TimedeltaIndex(, dtype='timedelta64', freq='D')
Параметр может передавать различные :
In : pd.timedelta_range(start="1 days", end="2 days", freq="30T") Out: TimedeltaIndex(, dtype='timedelta64', freq='30T') In : pd.timedelta_range(start="1 days", periods=5, freq="2D5H") Out: TimedeltaIndex(, dtype='timedelta64', freq='53H')
Указание , , и , будут генерировать ряд равномерно расположенных timedeltas от до включительно, с числом элементов в результате :
In : pd.timedelta_range("0 days", "4 days", periods=5) Out: TimedeltaIndex(, dtype='timedelta64', freq=None) In : pd.timedelta_range("0 days", "4 days", periods=10) Out: TimedeltaIndex(, dtype='timedelta64', freq=None)
Использование индекса TimedeltaIndex
Подобно другим индексам типа datetime, и , вы можете использовать в качестве индекса объектов pandas.
In : s = pd.Series( .....: np.arange(100), .....: index=pd.timedelta_range("1 days", periods=100, freq="h"), .....: ) .....: In : s Out: 1 days 00:00:00 1 days 01:00:00 1 1 days 02:00:00 2 1 days 03:00:00 3 1 days 04:00:00 4 .. 4 days 23:00:00 95 5 days 00:00:00 96 5 days 01:00:00 97 5 days 02:00:00 98 5 days 03:00:00 99 Freq: H, Length: 100, dtype: int64
Выборы работают аналогично,с принуждением к строкам-подобиям и срезам:
In : s Out: 1 days 00:00:00 1 days 01:00:00 1 1 days 02:00:00 2 1 days 03:00:00 3 1 days 04:00:00 4 .. 2 days 19:00:00 43 2 days 20:00:00 44 2 days 21:00:00 45 2 days 22:00:00 46 2 days 23:00:00 47 Freq: H, Length: 48, dtype: int64 In : s Out: 1 In : s Out: 1
Кроме того,вы можете использовать частичный выбор строки,и диапазон будет выведен:
In : s Out: 1 days 00:00:00 1 days 01:00:00 1 1 days 02:00:00 2 1 days 03:00:00 3 1 days 04:00:00 4 1 days 05:00:00 5 Freq: H, dtype: int64
Operations
Наконец, комбинация с позволяет выполнять определенные комбинированные операции, сохраняющие NaT:
In : tdi = pd.TimedeltaIndex() In : tdi.to_list() Out: In : dti = pd.date_range("20130101", periods=3) In : dti.to_list() Out: In : (dti + tdi).to_list() Out: In : (dti - tdi).to_list() Out:
Timezone Constants¶
-
The offset of the local DST timezone, in seconds west of UTC, if one is defined.
This is negative if the local DST timezone is east of UTC (as in Western Europe,
including the UK). Only use this if is nonzero. See note below.
-
Nonzero if a DST timezone is defined. See note below.
-
The offset of the local (non-DST) timezone, in seconds west of UTC (negative in
most of Western Europe, positive in the US, zero in the UK). See note below.
-
A tuple of two strings: the first is the name of the local non-DST timezone, the
second is the name of the local DST timezone. If no DST timezone is defined,
the second string should not be used. See note below.
Note
For the above Timezone constants (, , ,
and ), the value is determined by the timezone rules in effect
at module load time or the last time is called and may be incorrect
for times in the past. It is recommended to use the and
results from to obtain timezone information.
See also
- Module
-
More object-oriented interface to dates and times.
- Module
-
Internationalization services. The locale setting affects the interpretation
of many format specifiers in and . - Module
-
General calendar-related functions. is the
inverse of from this module.
Footnotes
-
The use of is now deprecated, but the escape that expands to the
preferred hour/minute offset is not supported by all ANSI C libraries. Also, a
strict reading of the original 1982 RFC 822 standard calls for a two-digit
year (%y rather than %Y), but practice moved to 4-digit years long before the
year 2000. After that, RFC 822 became obsolete and the 4-digit year has
been first recommended by RFC 1123 and then mandated by RFC 2822.
datetime.date Class
You can instantiate objects from the class. A date object represents a date (year, month and day).
Example 3: Date object to represent a date
When you run the program, the output will be:
2019-04-13
If you are wondering, in the above example is a constructor of the class. The constructor takes three arguments: year, month and day.
The variable a is a object.
We can only import class from the module. Here’s how:
Example 5: Get date from a timestamp
We can also create objects from a timestamp. A Unix timestamp is the number of seconds between a particular date and January 1, 1970 at UTC. You can convert a timestamp to date using method.
When you run the program, the output will be:
Date = 2012-01-11
Как преобразовать?
Модуль datetime состоит из трех разных типов объектов: даты, времени и datetime. Очевидно, что объект date содержит дату, time – время, а datetime – дату и время.
Например, следующий код напечатает текущую дату и время:
import datetime print ('Current date/time: {}'.format(datetime.datetime.now()))
Запуск этого кода напечатает что-то похожее на это:
$ python3 datetime-print-1.py Current date/time: 2018-06-29 08:15:27.243860
Если пользовательское форматирование не задано, используется строковый формат по умолчанию, т.е. формат для «2018-06-29 08: 15: 27.243860» находится в формате ISO 8601 (ГГГГ-ММ-ДДТЧЧ: ММ: СС.мммммм). Если наша входная строка для создания объекта datetime имеет тот же формат ISO 8601, мы можем легко преобразовать ее в объект datetime.
Давайте посмотрим на код ниже:
import datetime date_time_str = '2018-06-29 08:15:27.243860' date_time_obj = datetime.datetime.strptime(date_time_str, '%Y-%m-%d %H:%M:%S.%f') print('Date:', date_time_obj.date()) print('Time:', date_time_obj.time()) print('Date-time:', date_time_obj)
Запустив его, он напечатает дату, время и дату-время:
$ python3 datetime-print-2.py Date: 2018-06-29 Time: 08:15:27.243860 Date-time: 2018-06-29 08:15:27.243860
В этом примере мы используем новый метод под названием strptime. Этот метод принимает два аргумента: первый – это строковое представление даты и времени, а второй – формат входной строки. Указание формата, подобного этому, значительно ускоряет синтаксический анализ, поскольку datetime не нужно пытаться интерпретировать формат самостоятельно, что намного дороже в вычислительном отношении. Возвращаемое значение имеет тип datetime.
В нашем примере «2018-06-29 08: 15: 27.243860» – это входная строка, а «% Y-% m-% d% H:% M:% S.% f» – это формат нашей строки даты. Возвращаемое значение datetime сохраняется в переменной date_time_obj. Поскольку это объект datetime, мы можем вызывать методы date() и time() непосредственно на нем. Как видно из выходных данных, он печатает часть «дата» и «время» входной строки.
Вам может быть интересно, что означает формат «% Y-% m-% d% H:% M:% S.% f». Они известны как токены формата. Каждый токен представляет собой отдельную часть даты и времени, такую как день, месяц, год и т.д. Для быстрого ознакомления вот что мы используем в приведенном выше коде:
- % Y: год (4 цифры);
- % m: месяц;
- % d: день месяца;
- % H: час (24 часа);
- % M: минуты;
- % S: секунды;
- % f: микросекунды.
Ожидается, что все эти токены, кроме года, будут заполнены нулями.
Итак, если известен формат строки, ее можно легко преобразовать в объект datetime с помощью strptime. Приведу еще один нетривиальный пример:
import datetime date_time_str = 'Jun 28 2018 7:40AM' date_time_obj = datetime.datetime.strptime(date_time_str, '%b %d %Y %I:%M%p') print('Date:', date_time_obj.date()) print('Time:', date_time_obj.time()) print('Date-time:', date_time_obj)
Из следующего вывода вы можете видеть, что строка была успешно проанализирована, поскольку она правильно распечатывается объектом datetime:
$ python3 datetime-print-3.py Date: 2018-06-28 Time: 07:40:00 Date-time: 2018-06-28 07:40:00
Вот еще несколько примеров часто используемых форматов времени и токенов, используемых для синтаксического анализа:
"Jun 28 2018 at 7:40AM" -> "%b %d %Y at %I:%M%p" "September 18, 2017, 22:19:55" -> "%B %d, %Y, %H:%M:%S" "Sun,05/12/99,12:30PM" -> "%a,%d/%m/%y,%I:%M%p" "Mon, 21 March, 2015" -> "%a, %d %B, %Y" "2018-03-12T10:12:45Z" -> "%Y-%m-%dT%H:%M:%SZ"
Вы можете проанализировать строку даты и времени любого формата, используя таблицу, упомянутую в документации strptime.
How to Format a timedelta as string
Sometimes we want to get a string representation of a object. Even though you can do that by calling , sometimes the result will not be good. The reason is that it can vary depending on the length of the duration the object represents. For example, take a look at what happens when you try to print different s.
With that in mind, the question is: how can we have a more consistent format?
Sadly, we don’t have many options other than implementing a formatting function ourselves. The good thing is, that’s not so hard.
Suppose we want to print the in this format: . One way to do that is using python’s f-strings.
Преобразование даты и времени в строку
Приведенная ниже программа преобразует объект, содержащий текущую дату и время, в различные строковые форматы.
from datetime import datetime now = datetime.now() # current date and time year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time)
Когда вы запустите программу, результат будет примерно таким:
year: 2018 month: 12 day: 24 time: 04:59:31 date and time: 12/24/2018, 04:59:31
Здесь год, день, время и date_time ‒ это строки, а now ‒ объект datetime.
Python TimeDelta Операции
Давайте посмотрим на еще несколько операций между объектами TimeDelta.
ct = current_datetime + timedelta(seconds=60) - timedelta(seconds=60) print(current_datetime == ct) ct = current_datetime + timedelta(seconds=10) * 6 print('Current Time:', current_datetime) print('One Min from Current Time:', ct) print('Timedelta absolute value:', abs(timedelta(days=-10))) print('Timedelta String Representation:', str(timedelta(days=1, seconds=30, hours=10, milliseconds=300))) print('Timedelta Object Representation:', repr(timedelta(days=1, seconds=30, hours=10, milliseconds=300)))
Выход:
True Current Time: 2018-09-18 12:47:28.331197 One Min from Current Time: 2018-09-18 12:48:28.331197 Timedelta absolute value: 10 days, 0:00:00 Timedelta String Representation: 1 day, 10:00:30.300000 Timedelta Object Representation: datetime.timedelta(days=1, seconds=36030, microseconds=300000)
Python TimeDelta
Объект Python TimeDelta представляет собой продолжительность времени. Мы можем создать свой объект, используя следующий заводский метод.
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
Обратите внимание, что функция TimeDelta () принимает ключевые аргументы. Все аргументы являются необязательными и по умолчанию до 0
Аргументы могут быть целыми числами или поплавками и могут быть положительными или отрицательными.
Объект TimeDelta поддерживает математические операции, такие как добавление, вычитание, умножение и т. Д. Использование основных операторов, поэтому его очень легко использовать. Это в основном используется для получения объекта DateTime с какой-то датой и временем дельты.
Python Tutorial
Python HOMEPython IntroPython Get StartedPython SyntaxPython CommentsPython Variables
Python Variables
Variable Names
Assign Multiple Values
Output Variables
Global Variables
Variable Exercises
Python Data TypesPython NumbersPython CastingPython Strings
Python Strings
Slicing Strings
Modify Strings
Concatenate Strings
Format Strings
Escape Characters
String Methods
String Exercises
Python BooleansPython OperatorsPython Lists
Python Lists
Access List Items
Change List Items
Add List Items
Remove List Items
Loop Lists
List Comprehension
Sort Lists
Copy Lists
Join Lists
List Methods
List Exercises
Python Tuples
Python Tuples
Access Tuples
Update Tuples
Unpack Tuples
Loop Tuples
Join Tuples
Tuple Methods
Tuple Exercises
Python Sets
Python Sets
Access Set Items
Add Set Items
Remove Set Items
Loop Sets
Join Sets
Set Methods
Set Exercises
Python Dictionaries
Python Dictionaries
Access Items
Change Items
Add Items
Remove Items
Loop Dictionaries
Copy Dictionaries
Nested Dictionaries
Dictionary Methods
Dictionary Exercise
Python If…ElsePython While LoopsPython For LoopsPython FunctionsPython LambdaPython ArraysPython Classes/ObjectsPython InheritancePython IteratorsPython ScopePython ModulesPython DatesPython MathPython JSONPython RegExPython PIPPython Try…ExceptPython User InputPython String Formatting
Использование сторонних библиотек
Модуль datetime в Python может преобразовывать все разные типы строк в объект. Но основная проблема в том, что для этого вам нужно создать соответствующую строку кода форматирования, которую может понять strptime. Создание этой строки требует времени и затрудняет чтение кода. Вместо этого мы можем использовать другие сторонние библиотеки, чтобы упростить задачу.
В некоторых случаях эти сторонние библиотеки также имеют лучшую встроенную поддержку для управления и сравнения даты и времени, а некоторые даже имеют встроенные часовые пояса, поэтому вам не нужно включать дополнительный пакет.
Давайте рассмотрим некоторые из этих библиотек в следующих разделах.
Модуль datetime
Последнее обновление: 05.05.2017
Основной функционал для работы с датами и временем сосредоточен в модуле datetime в виде следующих классов:
-
date
-
time
-
datetime
Класс 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 можно получить соответственно день, месяц и год
Класс 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
Класс 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 можно получить отдельные значения даты и времени. А через методы и
можно получить отдельно дату и время соответственно.
Преобразование из строки в дату
Из функциональности класса datetime следует отметить метод strptime(), который позволяет распарсить строку и преобразовать ее в дату. Этот метод принимает два параметра:
strptime(str, format)
Первый параметр str представляет строковое определение даты и времени, а второй параметр — формат, который определяет, как различные части даты и времени
расположены в этой строке.
Для определения формата мы можем использовать следующие коды:
-
%d: день месяца в виде числа
-
%m: порядковый номер месяца
-
%y: год в виде 2-х чисел
-
%Y: год в виде 4-х чисел
-
%H: час в 24-х часовом формате
-
%M: минута
-
%S: секунда
Применим различные форматы:
from datetime import datetime deadline = datetime.strptime("22/05/2017", "%d/%m/%Y") print(deadline) # 2017-05-22 00:00:00 deadline = datetime.strptime("22/05/2017 12:30", "%d/%m/%Y %H:%M") print(deadline) # 2017-05-22 12:30:00 deadline = datetime.strptime("05-22-2017 12:30", "%m-%d-%Y %H:%M") print(deadline) # 2017-05-22 12:30:00
НазадВперед
Как визуализировать фондовый рынок с DateTime Numpy?
Для следующего примера я скачал последние 10 лет данных фондового рынка для S & P 500 Отказ Вы можете свободно загружать его здесь Отказ
Я проделал предварительную обработку от этой статьи и завершился двумя списками. Первый, Значения, Содержит значение индекса S & P 500 в закрытии каждый день с 2009-10-23 до 2019-10-22. Второй, datetimes содержит объекты на каждый день.
>>> values >>> datetimes
Я зацикливаю эти списки вместе, чтобы создать словарь, где каждый ключ является датой и каждым значением значение S & P 500. Мы будем использовать это для создания подмножеств наших данных позже, только выбрав ключи, которые мы хотим.
# Dictionary comprehensions are equally as wonderful as list comprehensions sp500 = {date: val for date, val in zip(datetimes, values)}
Участок 1 – все данные
plt.plot(datetimes, values) plt.xlabel('Year') plt.ylabel('SP500 Index') plt.title('SP500 Index Every Day from 2010-2019') plt.show()
Во всем наборе данных наблюдается огромная тенденция. Но график довольно шумный. Можно увидеть другие тенденции, но потому что есть так много очков, это не особенно приятно смотреть. Что делать, если мы повторно выбирали, чтобы увидеть, как рынок исполнился год на год? Для этого мы посмотрим на 1 января каждый год.
Участок 2 – 1 янв
Примечание: 1 ян Ян – это праздник каждый год, и поэтому фондовый рынок не открыт. Итак, мы будем использовать Чтобы выбрать ближайшую действительную дату для нас.
Во-первых, создайте список каждый год, используя NP.Arge ().
all_years = np.arange('2010', '2020', dtype='datetime64')
Так как значения datetimes У единицы времени «D» мы должны преобразовать даты в All_years к этому тоже. По умолчанию по умолчанию каждый элемент к yyyy-01-01.
first_jan_dates =
Наконец, мы применяем Способ вернуть элементы, которые мы хотим от SP500. И мы обертываем их в Чтобы убедиться, что мы выбираем рабочий день.
first_jan_values =
Теперь мы замышляем.
Это гораздо более гладкий сюжет, и очень легко понять, что годы имели положительный и отрицательный рост. Такова сила ретора!
Но этот граф слишком общий? Чтобы получить хорошую среднюю позицию, давайте посмотрим на стоимость S & P 500 в начале каждые квартал за последние 10 лет. Процесс практически идентичен тому, которое мы использовали выше.
Участок 3 – Каждый квартал
Во-первых, создайте список каждого квартала в виде YYYY-MM. Помните четверти 3 месяца!
every_quarter = np.arange('2010-01', '2019-10', 3, dtype='datetime64')
Переосмысление наших объектов DateTime для «D» с использованием понимания списка.
quarter_start_dates =
Наконец, мы применяем метод .get () для возврата элементов, которые мы хотим. И мы обертываем их в np.busday_offset (), чтобы убедиться, что мы выбираем рабочий день.
quarter_start_values =
Теперь мы замышляем
plt.plot(quarter_start_dates, quarter_start_values) plt.show()
Это дает нам прекрасный обзор тенденций фондового рынка. Это не слишком шумно (как сюжет 1) или чрезмерно упрощенный (например, сюжет 2). Внутрилетние провалы ясны, пока график все еще легко понятен.
И именно это! Все, что вам нужно знать, чтобы использовать NP.DATETETIME64 и связанные с ними функции, а также некоторые реальные примеры мира.
Если у вас есть какие-либо вопросы или предложения, пожалуйста, используйте окно комментариев ниже. Мы любим услышать отзывы и предложения!
Преобразование часовых поясов
Мы можем преобразовать часовой пояс объекта datetime из одного региона в другой, как показано в примере ниже:
import datetime as dt import pytz timezone_nw = pytz.timezone('America/New_York') nw_datetime_obj = dt.datetime.now(timezone_nw) timezone_london = pytz.timezone('Europe/London') london_datetime_obj = nw_datetime_obj.astimezone(timezone_london) print('America/New_York:', nw_datetime_obj) print('Europe/London:', london_datetime_obj)
Сначала мы создали один объект datetime с текущим временем и установили его как часовой пояс «America и New_York». Затем, используя метод astimezone(), мы преобразовали это datetime в часовой пояс «Европа и Лондон». Обе даты будут печатать разные значения, например:
$ python3 datetime-tzinfo-4.py America/New_York: 2018-06-29 22:21:41.349491-04:00 Europe/London: 2018-06-30 03:21:41.349491+01:00
Как и ожидалось, даты и время отличаются, поскольку разница между ними составляет около 5 часов.
How to convert a timedelta to seconds, minutes, hours, or days
A object allows adding a delta to a but sometimes is useful to convert it into a single time unit, such as seconds, or minutes.
In this section, we’ll explore how to do that.
How to convert a to seconds
A has only one method called . This method returns the total number of seconds the duration has. If we want to convert a object to seconds, we can just call it.
—as its name implies—corresponds to total seconds within the whole duration. On the flip side, is an internal property that represents the number of seconds within a day.
To be more precise, stores the seconds if it is less than a day, that is, from 0 to 86399. Otherwise, if the number of seconds is greater than 86399, converts this number to days, or weeks as you’ll see in the next example.
How to convert a to minutes
To convert a to minutes you need to use a bit of math. Unfortunately, does not provide any way of accessing the number of minutes in a duration. In the end, you need to do the conversion yourself.
There are two different ways of doing this conversion:
- the first one you divide the by the number of seconds in a minute, which is 60
- the second approach, you divide the object by
How to convert a to hours
We can follow the same logic to convert a to hours. Instead of dividing the by the number of seconds in a minute, or dividing the object by , we do it for hour.
How to convert a to days
Converting a to days is easier, and less confusing, than seconds. According to the , only days, seconds and microseconds are stored internally. To get the number of days in a time delta, just use the .
How to convert a to years
If you’ve been following this guide since the beginning you might have started to pick up a pattern. However, I have bad news.
In the section, I mentioned that you can create a by passing a combination of days, seconds, microseconds, milliseconds, minutes, hours, and weeks.
By default, doesn’t support years. To do that we would need to calculate how many weeks there is in how many years we want to pass. It’s definitely possible to use to add years to a , but some things can go wrong. For example, you need to take into account leap years yourself.
The idea here is to create a variable that holds the number of seconds in a year. A full year has 365 days, but to account for the leap years, we add 0.25 to it, so 365.25. Each day has 24 hours of 60 min, and each minute has 60s. Multiply everything and you get the number of seconds in a year.
Another alternative—to me the best one—is to get a delta duration in years is by using the library.
Python DateTime для строки
Вы можете конвертировать большинство объектов в строку с помощью STR () встроенного метода.
В этом руководстве мы будем преобразовать объект Python DateTime для строки с использованием встроенной функции str () и метода dateTime.dateTime.strftime ().
Синтаксис str () что мы будем использовать, показано ниже
datetimeString = str(datetimeObject)
Синтаксис strftime () показано ниже
datetimeString = datetimeObject.strftime(format_string)
Приведены примеры обоих этих сценариев.
Пример 1: преобразовать dateTime в строку
В этом примере мы получим текущее время, используя Отказ Возвращает объект типа класса Отказ Мы преобразуем объект DateTime в String, используя Отказ И распечатайте строку и его тип в консоль, просто чтобы убедиться.
Python Program
import datetime #get current date and time x = datetime.datetime.now() #convert date and time to string dateTimeStr = str(x) #print the date and time string print(dateTimeStr) #print the type of dateTimeStr print(type(dateTimeStr))
Выход
2019-12-10 05:19:10.982569
Мы преобразовали объект DateTime в String.
Теперь вы можете применить любые строковые операции на этой строке. В следующей программе. Давайте получим дату из строки DateTime, используя нарезку индекса.
Python Program
import datetime #get current date and time x = datetime.datetime.now() #convert date and time to string dateTimeStr = str(x) #just the date print(dateTimeStr)
Выход
2019-12-10
Объяснение
При нанесении STR (DateTimeObject) требуется метод DateTime .__ STR__ (). И вызов STR (DateTimeObject) эквивалентен DateTimeObject.isoformat (”).
В следующем примере мы будем инициализировать объект DateTime и проверьте результаты, когда мы преобразуем его в строку, а также при печати с ISOFormat (”).
Python Program
import datetime x = datetime.datetime(2020, 1, 1, 12, 30, 59, 0) #convert the datetime object to string datetimeStr = str(x) print(datetimeStr) #print the iso format of datetime object print(x.isoformat(' '))
Выход
2020-01-01 12:30:59 2020-01-01 12:30:59
Формат TateTime String.
Вы также можете контролировать результат, когда вы преобразуете объект DateTime в String, используя метод STRFTIME ().
strftime () принимает строку формата и возвращает dateTime, отформатированный в этот формат.
Python Program
import datetime x = datetime.datetime(2020, 1, 1, 12, 30, 59, 0) #convert the datetime object to string of specific format datetimeStr = x.strftime("%Y %B, %A %w, %H hours %M minutes") print(datetimeStr)
Выход
2020 January, Wednesday 3, 12 hours 30 minutes
Узнайте больше о формате Python DateTime.
Резюме
В этом руководстве примеров Python мы узнали, как преобразовать объект DateTime на String, с помощью хорошо подробных примеров.
Атрибуция
Эта статья способна предоставлена пользователем Finxter Адам Мерфи (данные ученый):
Я являюсь самоучками программистом с первой степенью класса в математике из Университета Дарема и кодировал с июня 2019 года.
Я хорошо разбираюсь в основах SUB STRACKING и DATA SCAIL и может получить широкий спектр информации из Web очень быстро.
Недавно я счел информацию обо всех часах, которые Breitling и Rolex продают всего за 48 часов и уверены в себе, я могу доставить наборы данных подобного качества для вас, независимо от ваших потребностей.
Будучи собственным английским языком, мои навыки общения отлично, и я доступен, чтобы ответить на любые вопросы, которые вы имеете, и предоставим регулярные обновления о прогрессе моей работы.
Если вы хотите нанять Адама, проверьте его Профиль намного !
Get the current Date only
Suppose we don’t want complete current timestamp, we are just interested in current date. How to do that ?
datetime class in datetime module consists of 2 other classes i.e date & time class. We can get date object from a datetime object i.e.
dateTimeObj = datetime.now() # get the date object from datetime object dateObj = dateTimeObj.date()
# Access the member variables of date object to print print(dateObj.year, '/', dateObj.month, '/', dateObj.day) # Print the date object print(dateObj)
Output:
9 : 37 : 55 . 574360 09:37:55.574360
# Converting date object to string dateStr = dateObj.strftime("%b %d %Y ") print(dateStr)
Output:
Nov 18 2018