【发布时间】:2021-12-31 03:32:09
【问题描述】:
我正在从 API 中提取 UTC 时间的交易日期。
我的目标是将此 UTC 日期时间转换为 UTC 纪元时间。
目前,.timestamp() 似乎将日期时间的时区更改为我的本地时区。
感谢任何见解!
INPUT:
# Get timestamp of transaction from events - (Note: events = data from API request)
transaction_time = event['transaction']['timestamp']
# Print transaction time value - (Data Type: str)
print("Transaction time:", transaction_time)
# Parse transaction_time
transaction_time_parsed = parser.parse(str(transaction_time))
# Print transaction_time_parsed value - (Data Type: datetime.datetime)
print("Parsed transaction time:", transaction_time_parsed)
# Convert transaction_time_parsed to epoch time and remove decimal
transaction_epoch_time = format((parser.parse(str(transaction_time)).timestamp()), '.0f')
# Print transaction_epoch_time value - (Data Type: str)
print("After .timestamp() & epoch conversion:", transaction_epoch_time)
OUTPUT:
Transaction time: 2021-11-11T23:12:19
Parsed transaction time: 2021-11-11 23:12:19
After .timestamp() & epoch conversion: 1636690339
1636690339 转换为:
格林威治标准时间:2021-11-12 4:12:19
您的时区:2021-11-11 23:12:19 GMT-05:00
【问题讨论】:
-
如果您没有为 Python 日期时间对象设置时区,它将假定它代表 本地时间。这就是为什么您的 Unix 时间与本地时间的 UTC 偏移量相差很大的原因。所以设置UTC,例如由
transaction_time_parsed = transaction_time_parsed.replace(tzinfo=timezone.utc)从 datetime 模块导入时区。 -
另见naive vs. aware datetime上的文档
-
@MrFuppes 你是男人,非常感谢你!
标签: python python-3.x datetime python-datetime python-dateutil