Python ДатаЧас, ЧасDelta, Strftime(Format) із прикладами
⚡ Розумний підсумок
Python datetime, разом із класами date, time та timedelta, обробляє дати, час та інтервали як об'єкти. Модуль datetime форматує вивід за допомогою strftime(), аналізує рядки та обчислює майбутні або минулі моменти за допомогою арифметики timedelta.

In Python, дата, час і датачас Класи надають низку функцій для роботи з датами, часом та часовими інтервалами. Дата та дата й час у Python є об'єктами, тому, коли ви маніпулюєте ними, ви насправді маніпулюєте об'єктами, а не рядками чи позначками часу. Щоразу, коли ви маніпулюєте датами або часом, вам потрібно імпортувати модуль datetime.
Класи datetime Python поділяються на 5 основних класів.
- дата – маніпулювати лише датою (місяць, день, рік)
- час – час, не залежний від дня (година, хвилина, секунда, мікросекунда)
- datetime – поєднання часу та дати (місяць, день, рік, година, секунда, мікросекунда)
- timedelta — тривалість часу, який використовується для обробки дат
- tzinfo — пресtract-клас для роботи з часовими поясами
Як використовувати клас Date & DateTime
крок 1) Перш ніж запускати код для формату дати й часу в Python, важливо, щоб ви імпортували Python модулі дати і часу, як показано на знімку екрана нижче.
Ці оператори імпорту є попередньо визначеними функціями в Python бібліотека, яка дозволяє маніпулювати датами та часом без написання будь-якого коду.
Перед виконанням врахуйте наступні моменти Python код формату дати й часу
from datetime import date
Цей рядок розповідає про Python інтерпретатор для імпорту класу дати з модуля datetime PythonМи не пишемо код для цієї функції дати, а просто імпортуємо його для нашого використання.
Роздрукувати дату за допомогою date.today()
Функція date.today() має кілька властивостей, пов'язаних з нею. Ми можемо вивести окремий день/місяць/рік та багато іншого.
Подивимось приклад
Число сьогоднішнього тижня
Функція date.today() також повертає номер дня тижня. Ось таблиця днів тижня, яка починається з Monday як 0, а в неділю — як 6.
| день | Номер тижня |
|---|---|
| Monday | 0 |
| Вівторок | 1 |
| середа | 2 |
| четвер | 3 |
| п'ятниця | 4 |
| Суботня | 5 |
| неділя | 6 |
Номер дня тижня корисний для масивів, індекс яких залежить від дня тижня.
крок 2) Далі ми створюємо екземпляр об’єкта дати.
крок 3) Далі друкуємо дату і запускаємо код.
Вихідний результат такий, як очікувалося.
Python Поточна дата й час: зараз() сьогодні()
Крок 1) Подібно до об’єктів дати, ми також можемо використовувати «ДАТА-ЧАС ОБ’ЄКТИ» in Python. Python об'єкти дати та часу дають дату разом із часом години, хвилини, секунди та мілісекунди.
Коли ми виконуємо код для datetime, він дає вихід із поточною датою та часом.
Крок 2) За допомогою «DATETIME OBJECT» також можна викликати клас часу. Припустимо, що ми хочемо вивести лише поточний час без дати.
t = datetime.time(datetime.now())
- Ми імпортували клас часу. Ми будемо призначати йому поточне значення часу за допомогою datetime.now()
- Ми присвоюємо значення поточного часу змінній t.
І це дасть мені час. Отже, давайте запустимо цю програму.
Добре, отже, ви можете бачити, що тут у мене є дата і час. А в наступному рядку у мене є лише час.
Крок 3) Ми застосуємо наш індексатор днів тижня до списку масивів днів тижня, щоб дізнатися, який сьогодні день.
- Оператору днів тижня (wd) присвоюється число від (0-6) залежно від того, який поточний день тижня. Тут ми оголосили масив списку для днів (пн, вт, ср…нд).
- Використовуйте це значення індексу, щоб дізнатися, який сьогодні день. У нашому випадку це №2, і він представляє середу, тому у вихідних даних буде надруковано «Що є середою».
Ось повний код для отримання поточної дати та часу за допомогою datetime зараз
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
Як відформатувати вихідні дати та час за допомогою Strftime()
Досі ми навчилися використовувати datetime та date об'єкт в Python. Ми підемо далі й дізнаємося, як використовувати функцію форматування для форматування часу та дати.
Крок 1) Спочатку ми побачимо простий крок, як відформатувати рік. Краще розібратися на прикладі.
- Ми використовували «Функція strftime» для форматування.
- Ця функція використовує різні контрольний код давати вихід.
- Кожен код керування відповідає різним параметрам, таким як рік, місяць, день тижня та дата. [(%y/%Y – рік), (%a/%A- день тижня), (%b/%B- місяць), (%d – день місяця)] .
- У нашому випадку так і є («%Y») який нагадує рік, він друкує повний рік із століттям (наприклад, 2018).
Крок 2) Тепер, якщо ви заміните (“%Y”) на нижній регістр, тобто ( “%y) і виконайте код, результат відображатиме лише (18), а не (2018). Століття року не відображатиметься, як показано на знімку екрана нижче
Крок 3) Функція Strf може окремо оголошувати дату, день, місяць та рік. Також за допомогою невеликих змін у керуючому коді функції strftime можна форматувати стиль тексту.
Усередині функції strftime, якщо замінити (%a) на велику літеру A, тобто (%A), результат буде виведено як «П'ятниця», а не просто скорочення «П'ятниця».
Крок 4) За допомогою функції «Strftime» ми також можемо отримати локальний системний час, дату або обидва.
- %C- вказує місцеву дату та час
- %x- вказує місцеву дату
- %X- вказує на місцевий час
У вихідних даних ви можете побачити очікуваний результат
Крок 5) «Функція strftime» дозволяє викликати час у будь-якому форматі 24 години або 12 годин.
Просто визначивши код керування, наприклад %I/H для години, % M для хвилини, %S для секунди, можна викликати час для різних форматів
12 годин час оголошено [print now.strftime(“%I:%M:%S %p) ]
24 годин час оголошено [друк зараз.strftime(“%H:%M”)]
Ось повний код для перетворення datetime в об’єкт String.
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Що таке Timedelta Python?
Дельта часу в Python – це об’єкт, що представляє тривалість. Він в основному використовується для обчислення тривалості між двома датами та часом. Він також використовується для отримання об’єкта з певною дельтою дати та часу. Об’єкт timedelta підтримує математичні операції, такі як додавання, підрахункиtracції, множення, ділення тощо.
Як використовувати об’єкти Timedelta
З Python timedelta об’єктів, ви можете оцінити час як для майбутнього, так і для минулого. Іншими словами, це проміжок часу для передбачення будь-якого особливого дня, дати чи часу.
Пам’ятайте, що ця функція призначена не для друку часу чи дати, а для ОБЧИСЛЕННЯ майбутнього чи минулогоДавайте подивимося Python приклад timedelta, щоб краще зрозуміти.
Крок 1) Щоб запустити об’єкти Timedelta, вам потрібно спочатку оголосити інструкцію імпорту, а потім виконати код
- Напишіть оператор імпорту для timedelta
- Тепер напишіть код для друку об’єкта з дельти часу, як показано на знімку екрана
- Запустіть код. Дельта часу представляє проміжок у 365 днів, 8 годин і 15 хвилин і друкує те саме
Збиває з пантелику? Наступний крок допоможе -
Крок 2) Отримаймо сьогоднішню дату й час, щоб перевірити, чи добре працює наш звіт про імпорт. Коли код виконується, він друкує сьогоднішню дату, що означає, що наш оператор імпорту працює добре
Крок 3) Ми побачимо, як ми можемо отримати дату через рік через дельта-об’єкти. Коли ми запускаємо код, він дає очікуваний результат.
Крок 4) Інший приклад того, як дельту часу можна використовувати для обчислення майбутньої дати з поточної дати та часу
Крок 5) Розглянемо більш складний приклад. Я хотів би визначити, скільки днів минуло Новий рік. Ось як ми будемо далі
- Використовуючи today= date.today() ми отримаємо сьогоднішню дату
- Ми знаємо, що Новий рік завжди настає 1 січня, але рік може бути іншим. Використовуючи nyd= date(today.year,1,1), ми зберігаємо новий рік у змінній nyd
- якщо nyd < сьогодні: порівнює, чи поточна дата більша за новий рік. Якщо так, то виконується перехід до циклу while
- ((сьогодні-нід).днів) дає різницю між поточною датою та новим роком у ДНЯХ
Результат показує, що «Новорічний день уже минув 11 днів тому».
Ось повний робочий код
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 Приклад
Наведені нижче приклади показують ті самі операції з датою та часом, написані для Python 2, де print — це оператор, а не функція. Використовуйте ці версії лише під час підтримки застарілої версії Python 2 код.
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















