Можно ли преобразовать item.datetime_received в localtimezone? - PullRequest
0 голосов
/ 10 марта 2020
# date
date_initial = datetime.now()
date_year = int((date_initial.strftime("%Y")))
date_month = int((date_initial.strftime("%-m")))
date_day = int((date_initial.strftime("%-d")))
print(date_year)
print(date_month)
print(date_day)

# file name
file_date_val = datetime.now() - timedelta(days=1)
file_path = "/home/shivam/PycharmProjects/Exchange2/Logs/"
file_date = (file_date_val.strftime("%m-%d-%Y"))
text = " - sent report full.txt"
fileName = file_path+file_date + text

start_localTz=account.default_timezone.localize(EWSDateTime(year=date_year, month=date_month, day=date_day)) - timedelta(days=1)
end_localTz=account.default_timezone.localize(EWSDateTime(year=date_year, month=date_month, day=date_day))
print(start_localTz)
print(end_localTz)

#gather information on top 500 emails in the sent mailbox ordered by datetime received
for item in account.sent.all().order_by('-datetime_received')[:1]:

        date = item.datetime_received
        print(date)

        #convert item.datetime_received to local timezone
        date_rcvd = account.default_timezone(EWSDateTime(item.datetime_received))
        print(date_rcvd)

Вывод этого дает мне

2020
3
10
2020-03-09 00:00:00-04:00
2020-03-10 00:00:00-04:00
2020-03-10 19:42:24+00:00
Traceback (most recent call last):
  File "test.py", line 63, in <module>
    date_rcvd = account.default_timezone(EWSDateTime(item.datetime_received))
  File "/home/shivam/PycharmProjects/Exchange2/venv/lib64/python3.6/site-packages/exchangelib/ewsdatetime.py", line 97, in __new__
    return super().__new__(cls, *args, **kwargs)
TypeError: an integer is required (got type EWSDateTime)

Когда я запустил этот скрипт до того, как переход на летнее время вступил в силу (это не включает в себя ошибку, которую я получаю выше по состоянию на данный момент, как его же )

2020-03-05 00:00:00-05:00
2020-03-06 00:00:00-05:00

Так что у меня возникают трудности с преобразованием времени в UT C, поскольку библиотека exchangelib выводит datetime_received как UT C. Когда скрипт запускается, мне нужно преобразовать datetime_received (exchangelib) в UT C. Мне нужен скрипт, чтобы можно было конвертировать из восточного стандартного времени или восточного дневного времени в правильное время UT C. Кроме того, я очень плохо знаком с python и создаю сценарий для проверки всех электронных писем в отправленном поле общего календаря, и это последнее препятствие, которое мне нужно преодолеть.

...