Поваренная книга Python datetime


Оглавление

  • Создание объекта datetime без временной зоны
  • Создание объекта datetime с часовым поясом
  • Создание объекта datetime с текущим временем
  • Создать объект datetime того же момента с другим часовым поясом
  • Создание объекта datetime из временной метки
  • Создать объект datetime того же времени, но вчерашнего дня
  • Форматирование объекта datetime в строку
  • Преобразование строки без часового пояса в объект datetime
  • Преобразовать строку со смещением UTC в объект datetime

Создайте объект datetime без временной зоны

from datetime import datetime

# datetime doesn't support nanosecond
dt1 = datetime(2022, 4, 25, 10, 30, 15, microsecond=500)
Вход в полноэкранный режим Выход из полноэкранного режима

Создать объект datetime с часовым поясом


from datetime import datetime
# ZoneInfo is supported since Python 3.9
from zoneinfo import ZoneInfo

# datetime doesn't support nanosecond
dt1 = datetime(2022, 4, 25, 10, 30, 15, microsecond=500, tzinfo=ZoneInfo('America/New_York'))
Войти в полноэкранный режим Выйти из полноэкранного режима

Создать объект datetime с текущим временем

from datetime import datetime
# ZoneInfo is supported since Python 3.9
from zoneinfo import ZoneInfo

# no timezone is set to dt1
dt1 = datetime.now()

# New York timezone is set to dt2
dt2 = datetime.now(ZoneInfo('America/New_York'))
Войти в полноэкранный режим Выйти из полноэкранного режима

Создать объект datetime того же момента времени с другим часовым поясом

from datetime import datetime
# ZoneInfo is supported since Python 3.9
from zoneinfo import ZoneInfo

# dt1: 2022-04-25 10:30:15 EDT
dt1 = datetime(2022, 4, 25, 10, 30, 15, 500, ZoneInfo('America/New_York'))

# dt2: 2022-04-25 23:30:15 JST
dt2 = dt1.astimezone(ZoneInfo('Asia/Tokyo'))
Войти в полноэкранный режим Выйти из полноэкранного режима

Создать объект datetime из временной метки

import time
from datetime import datetime

current_time = time.time()
dt1 = datetime.fromtimestamp(current_time)
Войти в полноэкранный режим Выйти из полноэкранного режима

Создать объект datetime того же времени, но вчерашнего дня

from datetime import datetime, timedelta

# dt1: 2022-04-25 10:30:15 EDT
dt1 = datetime(2022, 4, 25, 10, 30, 15, 500, ZoneInfo('America/New_York'))

# dt2: 2022-04-24 10:30:15 EDT
dt2 = dt1 + timedelta(days=-1)
Войти в полноэкранный режим Выйти из полноэкранного режима

Форматирование объекта datetime в строку

from datetime import datetime

dt1 = datetime(2022, 4, 25, 10, 30, 15, 500, ZoneInfo('America/New_York'))

# dt_str1: 2022-04-25 10:30:15.000500 EDT
dt_str1 = dt1.strftime('%Y-%m-%d %H:%M:%S.%f %Z')
Войти в полноэкранный режим Выйти из полноэкранного режима

Преобразование строки без часового пояса в объект datetime

from datetime import datetime

pattern1 = '%Y-%m-%d %H:%M:%S.%f'

dt_str1 = '2022-04-25 10:30:15.000500'
dt1 = datetime.strptime(dt_str1, pattern1)

# if microsecond field has 3 digits only, it will be treated as milliseconds
dt_str2 = '2022-04-25 14:30:15.100'
# dt2: 2022-04-25 14:30:15.100000
dt2 = datetime.strptime(dt_str2, pattern1)
Войти в полноэкранный режим Выйти из полноэкранного режима

Преобразование строки со смещением UTC в объект datetime

from datetime import datetime

# Use '%z' to parse utc offset
pattern1 = '%Y-%m-%d %H:%M:%S.%f %z'
dt_str1 = '2022-04-25 10:30:15.000500 -04:00'
dt1 = datetime.strptime(dt_str1, pattern1)
Войти в полноэкранный режим Выход из полноэкранного режима

Оцените статью
Procodings.ru
Добавить комментарий