下面是详细讲解 "Python UTC datetime转换为时间戳的方法" 的完整攻略:
什么是时间戳
时间戳是指某个时间点与某个固定的日期时间点(称为“基准时间”)之间的间隔,一般是指从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC 时间,称为“基准时间”)起至现在的总秒数。
Python 中的时间戳
在 Python 中,可以使用 time
模块来获取当前的时间戳。例如:
import time
timestamp = time.time()
print(timestamp)
输出结果类似于:
1605708423.5942905
其中,小数部分表示毫秒数。如果需要获取整数形式的时间戳,可以将结果进行取整:
import time
timestamp = int(time.time())
print(timestamp)
输出结果类似于:
1605708423
UTC datetime 转换为时间戳
在 Python 中,可以使用 datetime
模块来处理日期和时间。如果我们想将一个 UTC datetime 转换为时间戳,可以先将其转换为 Unix 时间(指从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC 时间)至输入时间的总秒数,不包括闰秒),然后再将其转换为时间戳。例如:
import datetime
import time
utc_datetime = datetime.datetime(2020, 11, 18, 9, 30, 0, tzinfo=datetime.timezone.utc)
unix_time = int((utc_datetime - datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)).total_seconds())
timestamp = int(unix_time)
print(timestamp)
输出结果为:
1605688200
以上代码中,我们首先创建了一个 UTC datetime 对象 utc_datetime
,然后将其转换为 Unix 时间,并将其转换为时间戳 timestamp
。
另外,如果你使用了 Python 3.3 或以上版本,可以直接使用 timestamp()
方法将 UTC datetime 转换为时间戳。例如:
import datetime
utc_datetime = datetime.datetime(2020, 11, 18, 9, 30, 0, tzinfo=datetime.timezone.utc)
timestamp = utc_datetime.timestamp()
print(int(timestamp))
输出结果为:
1605688200
示例说明
示例 1
将当前时间转换为 UTC datetime,并将其转换为时间戳:
import datetime
import time
now = datetime.datetime.now(datetime.timezone.utc) # 获取当前 UTC 时间
unix_time = int((now - datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)).total_seconds())
timestamp = int(unix_time) # 将 Unix 时间转换为时间戳
print(timestamp)
输出结果为当前时间的时间戳,例如:
1605724735
示例 2
将一个字符串形式的 UTC datetime 转换为时间戳:
import datetime
import time
utc_datetime_str = '2020-11-18T09:30:00Z'
utc_datetime = datetime.datetime.fromisoformat(utc_datetime_str)
unix_time = int((utc_datetime - datetime.datetime(1970, 1, 1, tzinfo=datetime.timezone.utc)).total_seconds())
timestamp = int(unix_time) # 将 Unix 时间转换为时间戳
print(timestamp)
输出结果为该 UTC datetime 的时间戳,例如:
1605688200
以上就是 Python 中将 UTC datetime 转换为时间戳的方法及示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python utc datetime转换为时间戳的方法 - Python技术站