【发布时间】:2020-12-22 14:24:06
【问题描述】:
我有一个从数据库中获取的日期时间字符串,我想将其转换为 unix 时间戳。
我不知道该怎么做。
db_timestamp = '2020-08-05 12:48:50+02:00'
f = '%Y-%m-%d %H:%M:%S%z'
timestamp = datetime.strptime(db_timestamp , f)
TypeError: strptime() argument 1 must be str, not datetime.datetime
我尝试的另一种方法如下
python_timestamp = datetime.isoformat(db_timestamp)
test_timestamp = datetime.strptime(python_timestamp , f)
然后我得到以下错误
ValueError: time data '2020-08-05T12:48:50+02:00' does not match format '%Y-%m-%d %H:%M:%S%z'
如何解决这个错误? db_timestamp 的正确字符串格式应该是什么?
【问题讨论】:
-
在您的示例中,
db_timestamp具有另一种格式的日期/时间字符串,如您在ValueError中所示 - 它实际上是哪一个?两种格式都与ISO 8601 兼容,因此fromisoformat可以使用(请参阅我的答案)。 -
您应该得到与您显示的不同的错误(或以不同的顺序)。我得到了第一个代码示例的最后一个错误。
-
您使用的是哪个 Python 3.x 版本? (什么是 x?)
标签: python python-3.x datetime unix-timestamp