Это зависит от того, какой интерпретатор python вы используете:
Jython:
Если вы используете Jython, то переменная Job типа DateTime, как уже упоминалось, является экземплярами MatillionDate
а не datetime
. Вы можете преобразовать его обратно в datetime.datetime
, преобразовав его в Java Instant
, получив представление ISO 8601 и проанализировав, что:
from dateutil.parser import parse
from dateutil.tz import tzutc
as_iso_string = str(latest_updated.toInstant()) # 2000-01-01T00:00:00Z
asdt = parse(as_iso_string) # datetime.datetime(2000, 1, 1, 0, 0, tzinfo=tzlocal())) tzinfo should be tzutc() not tzlocal()
asdt = parse(as_iso_string).replace(tzinfo=None) # naive datetime
asdt = parse(as_iso_string).replace(tzinfo=tzutc()) # datetime.datetime(2000, 1, 1, 0, 0, tzinfo=tzutc())
Убедитесь, что вы правильно выбрали часовой пояс , если ваша переменная Job должна была быть в UT C, вам нужно будет сделать .replace(tzinfo=tzutc())
, так как по какой-то причине dateutil.parser.parse()
в Jython не анализирует Z
как часовой пояс UT C (это происходит в обычном python 2.7.12)
Python 2 / Python 3:
Переменная будет иметь правильный тип уже datetime.datetime
. Нет часового пояса
print(repr(latest_updated)) # datetime.datetime(2000, 1, 1, 0, 0)