Python - 如何将时区感知的日期时间对象转换为时区无关的UTC日期时间对象?
我对Python中的datetime.datetime.utcnow()返回一个不带时区的日期时间对象感到困惑。我本以为它应该是带有UTC时区的日期时间对象,但无所谓。为了把这个不带时区的对象转换成带时区的对象,我会这样做:
import pytz
from datetime import datetime
us_pacific = pytz.timezone('US/Pacific')
utc_now = datetime.utcnow()
pacific_now = us_pacific.fromutc(utc_now)
现在我想知道的是,如何反过来操作。给定一个带时区的日期时间对象,我想得到对应的不带时区的UTC日期时间对象。
1 个回答
10
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当用户点击一个按钮时,我们希望程序能做出反应。这种情况就需要用到“事件处理”。
事件处理就是程序监听用户的操作,比如点击、输入或者移动鼠标等。当这些操作发生时,程序会执行预先设定好的代码来响应这些事件。
简单来说,事件处理就像是一个守门员,时刻关注着球场上的每一个动作,一旦有球员进攻或者防守,他就会立刻做出反应,确保比赛的进行。
在编程中,我们通常会使用一些函数来定义这些反应,比如说,当按钮被点击时,程序就会调用这个函数,执行相应的操作。
总之,事件处理让我们的程序变得更加互动和智能,能够根据用户的行为做出相应的反应。
# First convert back to UTC
utc_time = pacific_now.astimezone(pytz.utc)
# Remove the timezone attribute to make it timezone-naive
utc_time = utc_time.replace(tzinfo=None)