Python处理时间汇总-与时区相关的处理

获取当前东八区时间以及统一时区的时间比较

获取当前东八区时间 & 时间格式美化

# 定义东八区时区
cst_timezone = pytz.timezone('Asia/Shanghai')

# 获取东八区的当前时间
def get_cst_nowtime():
    curr_time = datetime.datetime.now(cst_timezone) # 2024-11-26 11:39:19.871490+08:00
    # 去掉时区与毫秒位
    curr_time = curr_time.replace(microsecond=0)
    curr_time = curr_time.replace(tzinfo=None)

    return curr_time # 2024-11-26 11:39:19

~~~

时间统一到同一个时区比较

# coding: utf-8
import pytz
import datetime

# 定义东八区时区
cst_timezone = pytz.timezone('Asia/Shanghai')
# 将时间对象转换为东八区时间
def to_cst_zone(req_time):
    if req_time.tzinfo is None:
        # 如果没有时区信息,假定为本地无时区时间并设置为东八区
        return req_time.replace(tzinfo=cst_timezone)
    elif req_time.tzinfo != cst_timezone:
        # 如果时区信息不等于东八区,则转换为东八区
        return req_time.astimezone(cst_timezone)
    else:
        return req_time


# 将两个时间统一为东八区并进行比较
def compare_times_to_cst(timt1, time2):
    # 转换两个时间为东八区
    time1 = to_cst_zone(timt1)
    time2 = to_cst_zone(time2)

    # 比较两个时间
    if time1 > time2:
        return 1
    elif time1 < time2:
        return -1
    else:
        return 0


if __name__ == '__main__':
    from datetime import datetime

    # CST
    server_time = datetime.now(pytz.timezone('Asia/Shanghai'))
    print("server_time:", server_time)

    # UTC
    db_time_utc = datetime.now(pytz.timezone('UTC'))
    print("db_time_utc:", db_time_utc)


    print(compare_times_to_cst(db_time_utc, server_time))

~~~

123

123

posted on 2024-11-26 11:25  江湖乄夜雨  阅读(6)  评论(0编辑  收藏  举报