python datetime.datetime.now() 北京时间

python datetime.datetime.now() 北京时间

 

===================

要获取北京时间(中国标准时间,UTC+8),可以使用datetime模块中的datetime和timedelta类。以下是一个简单的函数,用于获取北京时间:

from datetime import datetime, timedelta
 
def get_beijing_time():
    # 获取UTC时间
    utc_time = datetime.utcnow()
    # 将UTC时间转换为北京时间,即UTC+8
    beijing_time = utc_time + timedelta(hours=8)
    return beijing_time
 
# 使用函数
print(get_beijing_time())

这段代码会打印出当前的北京时间。

 

====================

datetime.datetime.now() 默认获取的是UTC时间,如果需要获取北京时间(中国标准时间,UTC+8),可以使用pytz库进行时区转换,或者使用Python 3.9及以上版本的zoneinfo模块。

以下是使用zoneinfo的示例代码:

from datetime import datetime
from zoneinfo import ZoneInfo
 
# 北京时间的时区信息
beijing_time = ZoneInfo('Asia/Shanghai')
 
# 获取当前的北京时间
now = datetime.now(beijing_time)
print(now)

如果你使用的Python版本低于3.9,可以使用pytz库:

from datetime import datetime
import pytz
 
# 北京时间的时区信息
beijing_tz = pytz.timezone('Asia/Shanghai')
 
# 获取当前的UTC时间
utc_now = datetime.utcnow()
 
# 将UTC时间转换为北京时间
beijing_now = utc_now.replace(tzinfo=pytz.utc).astimezone(beijing_tz)
print(beijing_now)

注意:pytz 在Python 2022年1月1日后不再得到维护,建议升级到Python 3.9或更高版本使用zoneinfo。

====================

 

posted @ 2024-10-15 23:13  emanlee  阅读(118)  评论(0编辑  收藏  举报