Python сообщает о смещении даты и времени - PullRequest
0 голосов
/ 04 июня 2018

Я хочу получить смещение для даты и времени и создать осведомленную строку.

Работает следующий код IDLE:

Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux

import datetime
date_now = datetime.datetime.now()
date_now_with_offset = date_now.astimezone()
print(date_now_with_offset)
2018-06-03 17:48:50.258504-05:00

Следующий код в скрипте выдает ошибку:

import datetime
date_now = datetime.datetime.now()
date_now_with_offset = date_now.astimezone()
print(date_now_with_offset)

TypeError: Required argument 'tz' (pos 1) not found

Я понимаю, что смещение и часовой пояс разные, но в любой данный момент местное время должно быть смещено так же, как точное смещение часового пояса, даже если смещение часового пояса может колебаться в течение года.

Что происходит и почему?Какое лучшее решение?

Ответы [ 2 ]

0 голосов

Из вашего следа: TypeError: Required argument 'tz' (pos 1) not found.Ваш скрипт использует Python2, который обычно не совместим с Python3.В Python2 вы должны указать часовой пояс.Обратите внимание на разницу между Python2 и Python3 документацией.

В Linux слово python специально означает python2.Python3 набирается с использованием python3, если вы не используете псевдоним.Чтобы исправить это, измените все вхождения с python на python3, как в

#! /usr/bin/env python3
python3 offset.py

Примечание: Из документации Python3 он не работает на всех версиях Python3:

Изменено в версии 3.3: теперь tz может быть опущено.

Изменено в версии 3.6: теперь метод astimezone () можно вызывать для наивных экземпляров, которые, как предполагается, представляют локальную системувремя.

0 голосов
/ 04 июня 2018

Сценарий выполняется интерпретатором python2.Добавьте явный шебанг python3 к сценарию:

#! /usr/bin/env python3

import datetime
....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...