Кажется, что astimezone работает более чем в 3 раза быстрее, чем localize.
Есть ли когда-нибудь причина использовать локализацию вместо astimezone?
Код: Выделить всё
-------- Trial Name: Convert nonaware datetimes to timezone aware via localize
Totaltime: 1.854642400s
Time per loop: 18.546us
-------- Trial Name: Convert nonaware datetimes to timezone aware via astimezone
Totaltime: 0.584159600s
Time per loop: 5.842us
Код: Выделить всё
import timeit
numberOfTrials = 100000
def myTimeit(trialName, mysetup, mycode, numberOfTrials):
print(f'-------- Trial Name: {trialName}')
# timeit statement
totalTime = timeit.timeit(setup=mysetup,
stmt=mycode,
number=numberOfTrials)
print(f"Totaltime: {totalTime:0,.9f}s")
print(f"Time per loop: {totalTime / numberOfTrials * 1e6:0.3f}us")
print()
return totalTime
mysetup = '''
from datetime import datetime
import pytz
notTimezoneAware_datetime = datetime.strptime("220105 230310", '%y%m%d %H%M%S')
TOKYO_tz = pytz.timezone('Asia/Tokyo')
'''
myTimeit(trialName='Convert nonaware datetimes to timezone aware via localize',
mysetup=mysetup,
mycode='TOKYO_tz.localize(notTimezoneAware_datetime)',
numberOfTrials=numberOfTrials)
myTimeit(trialName='Convert nonaware datetimes to timezone aware via astimezone',
mysetup=mysetup,
mycode='notTimezoneAware_datetime.astimezone(TOKYO_tz)',
numberOfTrials=numberOfTrials)
Подробнее здесь: https://stackoverflow.com/questions/723 ... -when-goin