python关于时间的转换

1.将UTC时间转化为用户的当地时间(用户有传GMT字符串传过来)

timezone = "GMT+08:00"
# 获取用户的timezone小时,分钟
hours = re.match(r'GMT([+|-][\d]{1,2}):\d{1}\d{1}',timezone).group(1)
minutes = re.match(r'GMT([+|-][\d]{1,2}):\d{1}\d{1}',timezone).group().split(":")[1]
hours, minutes = int(hours), int(minutes)
minutes = minutes if hours >= 0 else -minutes
print(hours, minutes)
# 8 0
# 获取用户所在的今天时间,昨天时间(datetime格式)
now_time = datetime.utcnow()+timedelta(hours=hours,minutes=minutes)
yseterday_time = now_time + timedelta(days=-1)
print(type(now_time), now_time)
# <class 'datetime.datetime'> 2020-11-09 00:47:49.047901
print(type(yseterday_time), yseterday_time)
# <class 'datetime.datetime'> 2020-11-08 00:47:49.047901

2.将时间转化成字符串时间

# now_time, yesterday_time接上步骤
# 将今天时间,昨天时间转化成字符串格式时间
str_now_time = now_time.strftime('%Y-%m-%d')
str_yesterday_time = yseterday_time.strftime('%Y-%m-%d')
print(type(str_now_time), str_now_time)
# <class 'str'> 2020-11-09
print(type(str_yesterday_time), str_yesterday_time)
# <class 'str'> 2020-11-08

3.将字符串时间转化为毫秒时间戳

str_time = "2020-11-9"
# 先将字符串时间转化为时间数组
timeArray = time.strptime(str_time, "%Y-%m-%d")
print(timeArray)
# time.struct_time(tm_year=2020, tm_mon=11, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=314, tm_isdst=-1)
# 将时间数组转化为毫秒时间戳
timeStamp = int(time.mktime(timeArray))*1000
print(timeStamp)
# 1604851200000

 

posted @ 2020-11-09 01:16  dalyday  阅读(365)  评论(0编辑  收藏  举报