北京时间与UTC时间转换

文章介绍了如何使用Python的datetime模块将北京时间转换为UTC时间,主要涉及astimezone方法和timezone对象,通过时区差进行转换。示例代码演示了从当前北京时间到UTC时间的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UTC时间也称为世界标准时间,或协调世界时(英语:Coordinated Universal Time),北京时间是东八区,领先UTC 8个小时。 UTC + 时区差= 本地时间, 时区差东为正,西为负,即 【北京时间 = UTC时间+8小时】

我们转化时主要使用自带的datetimeastimezone方法

astimezone的详细用法请参考:https://www.geeksforgeeks.org/python-datetime-astimezone-method/

工具函数如下:

from datetime import datetime, timezone, timedelta


def convert_utc_from_beijing(beijing_dt: datetime, hours=8):
    """
    转换本地的datetime格式为UTC时间
    :param datetime beijing_dt: 北京时间的datetime格式
    :param hours: 时区,北京是+8
    :return:
    """
    utc_time = (beijing_dt - timedelta(hours=hours)).replace(tzinfo=timezone.utc)  # 需要加上UTC时区
    beijing_utc = utc_time.astimezone(timezone(timedelta(hours=hours)))
    return beijing_utc


now_utc = convert_utc_from_beijing(datetime.now())
print("本地datetime时间:", datetime.now())
print("转换为北京的时区:", now_utc)
print("直接读取本地UTC时间:", datetime.utcnow())
print("时间戳:", now_utc.timestamp())

得到结果:

本地datetime时间: 2023-03-02 10:49:08.657267
转换为北京的时区: 2023-03-02 10:49:08.657180+08:00
直接读取本地UTC时间: 2023-03-02 02:49:08.657379
时间戳: 1677725348.65718
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值