【问题标题】:Python date object Convert to UTC timestamp at midnightPython 日期对象在午夜转换为 UTC 时间戳
【发布时间】:2020-04-20 06:32:48
【问题描述】:

我有类似的python日期对象

datetime.date(2020, 3, 29)#d1,数据库中的django DateField

现在我想在午夜获取该日期对象 d1 的 UTC 时间戳

我搜索了很多,但没有任何效果。

我试过了

d2 = datetime.combine(d1, datetime.min.time())
d2.timestamp() // This is localtimezone i want in UTC

不知道为什么我需要增加时间

【问题讨论】:

  • 使用datetime.utcnow()作为UTC时间
  • @Mohsen 今天只会给我,如果是其他日期呢?我可以做 d1.utcnow()
  • 这能回答你的问题吗? How to convert local time string to UTC?
  • @Prudhvi 我尝试了所有这些,太复杂了,无法理解那里发生了什么
  • 数据库中的日期时间对象,它们在哪个时区? UTC?

标签: python datetime


【解决方案1】:

假设您的日期对象 d 是 UTC,您可以简单地添加午夜时间 (00:00:00) 和时区信息 UTC,然后应用 timestamp() 方法来获取所需的时间戳。示例:

import datetime as dt

d = dt.date(2020, 3, 29)
ts_utc = dt.datetime.combine(d, dt.time(0,0,0), tzinfo=dt.timezone.utc).timestamp()
print(ts_utc)
# 1585440000.0

check = dt.datetime.utcfromtimestamp(ts_utc)
print(check)
# 2020-03-29 00:00:00

注意:设置时区很重要,否则timestamp() 方法假定输入位于运行此代码的机器所设置的时区!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2012-10-03
    • 2013-12-04
    • 2012-01-11
    • 2011-05-02
    • 1970-01-01
    • 2018-05-19
    相关资源
    最近更新 更多