这取决于您使用的 python 解释器:
杰通:
如果您使用 Jython,则 DateTime 类型的 Job 变量如前所述是MatillionDate
and not的实例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 变量是 UTC,你需要这样做,因为在 Jython 中.replace(tzinfo=tzutc())
由于某种原因dateutil.parser.parse()
没有解析Z
时区 UTC(它在常规 python 2.7.12 中)
蟒蛇 2 / 蟒蛇 3:
该变量已经具有正确的类型datetime.datetime
。无时区
print(repr(latest_updated)) # datetime.datetime(2000, 1, 1, 0, 0)