Python --- datetime

1. UTC时间

1.1 转Datetime对象

start_time = "2024-03-22T15:37:37.859143Z"
datetime.datetime.strptime(start_time, '%Y-%m-%dT%H:%M:%S.%fZ')

1.2 去掉毫秒级

2024-03-22 15:37:37.859143 去掉毫秒级

# 先用 %Y-%m-%d %H:%M:%S.%f 转成datetime对象,然后再重新格式化
start_time = "2024-03-22 15:37:37.859143"
datetime.datetime.strptime(start_time, '%Y-%m-%d %H:%M:%S.%f').strftime("%Y-%m-%d %H:%M:%S")

UTC时间: 2024-03-22T15:37:37.859143Z 去掉毫秒级

# 先用 %Y-%m-%dT%H:%M:%S.%fZ 转成datetime对象,然后再重新格式化

start_time = "2024-03-22T15:37:37.859143Z"
datetime.datetime.strptime(start_time, '%Y-%m-%dT%H:%M:%S.%fZ').strftime("%Y-%m-%d %H:%M:%S")

2. 时区问题

from django.utils import timezone

# 得到的是本地时区时间,aware
timezone.localtime()

# 得到的是 naive 时区的时间
datetime.now()

# 计算差值需要转换成对应时区的时间
# 方法1:将naive的转换为aware的时区
naive_dt = aware_dt.astimezone().replace(hour=naive_dt.hour, minute=naive_dt.minute, second=naive_dt.second, microsecond=naive_dt.microsecond)
 
# 方法2:将aware的转换为naive
aware_dt = aware_dt.replace(tzinfo=None)
 
# 现在你可以安全地减去这两个日期时间了
difference = aware_dt - naive_dt
posted @ 2024-03-22 16:43  河图s  阅读(13)  评论(0)    收藏  举报