Python ДатаЧас, ЧасDelta, Strftime(Format) із прикладами

In Python, дата, час і датачас класи надають низку функцій для роботи з датами, часом та інтервалами часу. Дата й час у Python є об’єктами, тому коли ви маніпулюєте ними, ви насправді маніпулюєте об’єктами, а не рядками чи часовими мітками. Щоразу, коли ви маніпулюєте датами чи часом, вам потрібно імпортувати функцію datetime.

Класи datetime Python поділяються на 5 основних класів.

  • дата – маніпулювати лише датою (місяць, день, рік)
  • час – час, не залежний від дня (година, хвилина, секунда, мікросекунда)
  • datetime – поєднання часу та дати (місяць, день, рік, година, секунда, мікросекунда)
  • timedelta — тривалість часу, який використовується для обробки дат
  • tzinfo — абстрактний клас для роботи з часовими поясами

Як використовувати клас Date & DateTime

крок 1) Перш ніж запускати код для формату дати й часу в Python, важливо, щоб ви імпортували Python модулі дати і часу, як показано на знімку екрана нижче.

Використовуйте клас Date & DateTime

Ці оператори імпорту є попередньо визначеними функціями в Python бібліотека, яка дозволяє маніпулювати датами та часом без написання коду.

Перед виконанням врахуйте наступні моменти Python код формату дати й часу

from datetime import date

Цей рядок розповідає про Python інтерпретатор для імпорту класу дати з модуля datetime Python. Ми не пишемо код для цієї функції дати, на жаль, просто імпортуємо його для нашого використання

крок 2) Далі ми створюємо екземпляр об’єкта дати.

Використовуйте клас Date & DateTime

крок 3) Далі друкуємо дату і запускаємо код.

Використовуйте клас Date & DateTime

Вихід відповідає очікуванням.

Роздрукувати дату за допомогою date.today()

date.today функція має кілька пов’язаних з нею властивостей. Ми можемо надрукувати індивідуальний день/місяць/рік і багато іншого

Подивимось приклад

Роздрукувати дату за допомогою date.today()

Число сьогоднішнього тижня

Функція date.today() також дає вам номер дня тижня. Ось таблиця днів тижня, яка починається з Monday як 0 і неділю як 6

день Номер тижня
Monday 0
Вівторок 1
середа 2
четвер 3
п'ятниця 4
Суботня 5
неділя 6

Номер дня тижня корисний для масивів, індекс яких залежить від дня тижня.

Роздрукувати дату за допомогою date.today()

Python Поточна дата й час: зараз() сьогодні()

Крок 1) Подібно до об’єктів дати, ми також можемо використовувати «ДАТА-ЧАС ОБ’ЄКТИ» in Python. Python об'єкти дати та часу дають дату разом із часом години, хвилини, секунди та мілісекунди.

Python Поточна дата та час

Коли ми виконуємо код для datetime, він дає вихід із поточною датою та часом.

Крок 2) За допомогою “DATETIME OBJECT” ви також можете викликати клас часу.

Припустимо, ми хочемо надрукувати лише поточний час без дати.

t = datetime.time(datetime.now())
  • Ми імпортували клас часу. Ми будемо призначати йому поточне значення часу за допомогою datetime.now()
  • Ми присвоюємо значення поточного часу змінній t.

І це дасть мені час. Отже, давайте запустимо цю програму.

Python Поточна дата та час

Гаразд, ви бачите, що я отримав дату й час. А потім у наступному рядку я маю лише час

Крок 3) Ми застосуємо наш індексатор днів тижня до arrayList наших днів тижня, щоб знати, який сьогодні день

  • Оператору днів тижня (wd) присвоюється номер від (0-6) числа в залежності від поточного дня тижня. Тут ми оголосили масив списку для днів (пн, вт, ср...нд).
  • Використовуйте це значення індексу, щоб дізнатися, який сьогодні день. У нашому випадку це №2, і він представляє середу, тому у вихідних даних буде надруковано «Що є середою».

Python Поточна дата та час

Ось повний код для отримання поточної дати та часу за допомогою 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()

  • Ми використовували "функція strftime" для форматування.
  • Ця функція використовує різні контрольний код давати вихід.
  • Кожен контрольний код нагадує різні параметри, такі як рік, місяць, день тижня та дата [(%y/%Y – рік), (%a/%A- день тижня), (%b/%B- місяць), (%d – день місяця)] .
  • У нашому випадку так і є («%Y») який нагадує рік, він друкує повний рік із століттям (наприклад, 2018).

Крок 2) Тепер, якщо ви заміните (“%Y”) на нижній регістр, тобто ( “%y) і виконайте код, результат відображатиме лише (18), а не (2018). Століття року не відображатиметься, як показано на знімку екрана нижче

Форматування дати та часу виведення за допомогою Strftime()

Крок 3) Функція Strf може оголошувати дату, день, місяць і рік окремо. Також за допомогою невеликих змін у керуючому коді у функції strftime можна відформатувати стиль тексту.

Форматування дати та часу виведення за допомогою Strftime()

Усередині функції strftime, якщо ви заміните (%a) на велику A, тобто (%A), результат друкуватиметься як «Firday» замість простої абревіатури «Fri».

Форматування дати та часу виведення за допомогою Strftime()

Крок 4) За допомогою функції «Strftime» ми також можемо отримати локальний системний час, дату або обидва.

  1. %C- вказує місцеву дату та час
  2. %x- вказує місцеву дату
  3. %X- вказує на місцевий час

Форматування дати та часу виведення за допомогою Strftime()

У вихідних даних ви можете побачити очікуваний результат

Крок 5) «Функція strftime» дозволяє викликати час у будь-якому форматі 24 години або 12 годин.

Форматування дати та часу виведення за допомогою Strftime()

Просто визначивши код керування, наприклад %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

  1. Напишіть оператор імпорту для timedelta
  2. Тепер напишіть код для друку об’єкта з дельти часу, як показано на знімку екрана
  3. Запустіть код. Дельта часу представляє проміжок у 365 днів, 8 годин і 15 хвилин і друкує те саме

Збиває з пантелику? Наступний крок допоможе -

Крок 2) Отримаймо сьогоднішню дату й час, щоб перевірити, чи добре працює наш звіт про імпорт. Коли код виконується, він друкує сьогоднішню дату, що означає, що наш оператор імпорту працює добре

Об'єкти Timedelta

Крок 3) Ми побачимо, як ми можемо отримати дату через рік через дельта-об’єкти. Коли ми запускаємо код, він дає очікуваний результат.

Об'єкти Timedelta

Крок 4) Інший приклад того, як дельту часу можна використовувати для обчислення майбутньої дати з поточної дати та часу

Об'єкти Timedelta

Крок 5) Розглянемо більш складний приклад. Я хотів би визначити, скільки днів минуло Новий рік. Ось як ми будемо далі

  • Використовуючи today= date.today() ми отримаємо сьогоднішню дату
  • Ми знаємо, що Новий рік завжди настає 1 січня, але рік може бути іншим. Використовуючи nyd= date(today.year,1,1), ми зберігаємо новий рік у змінній nyd
  • якщо nyd < сьогодні: порівнює, чи поточна дата більша за новий рік. Якщо так, він входить у цикл while
  • ((сьогодні-нід).днів) дає різницю між поточною датою та новим роком у ДНЯХ

Об'єкти Timedelta

Результат показує, що «Новорічний день уже минув 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 ви можете оцінити час як для майбутнього, так і для минулого
  • Обчисліть загальну кількість днів, що залишилися до особливого дня (дня народження) від поточного часу
  • Обчисліть загальну кількість днів, що минули для особливого дня (дня народження) від поточного часу