Python ДатаЧас, ЧасDelta, Strftime(Format) із прикладами
Класи datetime Python поділяються на 5 основних класів.
- дата – маніпулювати лише датою (місяць, день, рік)
- час – час, не залежний від дня (година, хвилина, секунда, мікросекунда)
- datetime – поєднання часу та дати (місяць, день, рік, година, секунда, мікросекунда)
- timedelta — тривалість часу, який використовується для обробки дат
- tzinfo — абстрактний клас для роботи з часовими поясами
Як використовувати клас Date & DateTime
крок 1) Перш ніж запускати код для формату дати й часу в Python, важливо, щоб ви імпортували Python модулі дати і часу, як показано на знімку екрана нижче.
Ці оператори імпорту є попередньо визначеними функціями в Python бібліотека, яка дозволяє маніпулювати датами та часом без написання коду.
Перед виконанням врахуйте наступні моменти Python код формату дати й часу
from datetime import date
Цей рядок розповідає про Python інтерпретатор для імпорту класу дати з модуля datetime Python. Ми не пишемо код для цієї функції дати, на жаль, просто імпортуємо його для нашого використання
крок 2) Далі ми створюємо екземпляр об’єкта дати.
крок 3) Далі друкуємо дату і запускаємо код.
Вихід відповідає очікуванням.
Роздрукувати дату за допомогою date.today()
date.today
функція має кілька пов’язаних з нею властивостей. Ми можемо надрукувати індивідуальний день/місяць/рік і багато іншого
Подивимось приклад
Число сьогоднішнього тижня
Функція date.today() також дає вам номер дня тижня. Ось таблиця днів тижня, яка починається з Monday як 0 і неділю як 6
день | Номер тижня |
---|---|
Monday | 0 |
Вівторок | 1 |
середа | 2 |
четвер | 3 |
п'ятниця | 4 |
Суботня | 5 |
неділя | 6 |
Номер дня тижня корисний для масивів, індекс яких залежить від дня тижня.
Python Поточна дата й час: зараз() сьогодні()
Крок 1) Подібно до об’єктів дати, ми також можемо використовувати «ДАТА-ЧАС ОБ’ЄКТИ» in Python. Python об'єкти дати та часу дають дату разом із часом години, хвилини, секунди та мілісекунди.
Коли ми виконуємо код для datetime, він дає вихід із поточною датою та часом.
Крок 2) За допомогою “DATETIME OBJECT” ви також можете викликати клас часу.
Припустимо, ми хочемо надрукувати лише поточний час без дати.
t = datetime.time(datetime.now())
- Ми імпортували клас часу. Ми будемо призначати йому поточне значення часу за допомогою datetime.now()
- Ми присвоюємо значення поточного часу змінній t.
І це дасть мені час. Отже, давайте запустимо цю програму.
Гаразд, ви бачите, що я отримав дату й час. А потім у наступному рядку я маю лише час
Крок 3) Ми застосуємо наш індексатор днів тижня до arrayList наших днів тижня, щоб знати, який сьогодні день
- Оператору днів тижня (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), результат друкуватиметься як «Firday» замість простої абревіатури «Fri».
Крок 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 підтримує такі математичні операції, як додавання, віднімання, множення, ділення тощо.
Як використовувати об’єкти 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 Приклад
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)
Підсумки
Для маніпулювання датами та часом як простими, так і складними способами модуль datetime надає різні класи або категорії, наприклад
- дата – маніпулювати лише датою (місяць, день, рік)
- час – час, не залежний від дня (година, хвилина, секунда, мікросекунда)
- datetime – поєднання часу та дати (місяць, день, рік, година, секунда, мікросекунда)
- timedelta — тривалість часу, який використовується для обробки дат
- tzinfo — абстрактний клас для роботи з часовими поясами
Використання об’єктів datetime
- Імпорт об’єктів datetime перед виконанням коду є обов’язковим
- Використання функції date.today для друку окремої дати/місяця/року, а також індексування дня
- Використання об’єкта date.time для отримання часу в годинах, хвилинах, секундах і мілісекундах
Форматування тайм-ауту за допомогою «str f time function»
- Використовуйте «str f time function», щоб змінити формат року
- Друкувати день, число, місяць і рік окремо,
- Час виклику для будь-якого формату 12 годин або 24 години
Об'єкти Timedelta
- За допомогою об’єктів timedelta ви можете оцінити час як для майбутнього, так і для минулого
- Обчисліть загальну кількість днів, що залишилися до особливого дня (дня народження) від поточного часу
- Обчисліть загальну кількість днів, що минули для особливого дня (дня народження) від поточного часу