У меня возникла проблема с преобразованием UTC в новый часовой пояс в python.Изменение часового пояса От UTC до нового часового пояса
Данные первоначально строка принес и успешно конвертируется в UTC, как например:
df['order delivery time'] = pd.to_datetime(df['order delivery time'])
Далее я пытаюсь написать функцию, как это:
eastern = pytz.timezone('US/Eastern')
central = pytz.timezone('US/Central')
pacific = pytz.timezone('US/Pacific')
def change_tz(time, region):
if region == 'sf':
return time.astimezone(pytz.timezone(pacific))
elif region == 'chi':
return time.astimezone(pytz.timezone(central))
elif region == 'nyc':
return time.astimezone(pytz.timezone(eastern))
Затем нанесите:
df['order delivery time ADJUSTED'] = df.apply(lambda row: change_tz(row['order delivery time'], row['region']), axis=1)
Я получаю эту ошибку:
AttributeError: ("'US/Central' object has no attribute 'upper'", u'occurred at index 0')
Я также попытался строк вроде:
if region == 'sf':
return datetime.fromtimestamp(time, tz='US/Pacific')
И:
if region == 'sf':
return tz.fromutc(datetime.utcfromtimestamp(time).replace(tzinfo='US/Pacific'))
Пожалуйста, помогите мне преобразовать часовой пояс! Благодаря!