时间戳与字符串之间的相互转换
# -*- coding: utf-8 -*-
"""
@Time : 2021/7/20 11:34
@Author : Little Duo
@File : Tools.py
"""
import time
from datetime import datetime
utc_time = datetime.strptime("1970-01-01 08:00:00", '%Y-%m-%d %H:%M:%S')
# 字符串转换时间戳
def str_time_trans_timestamp(my_time: str, format_type='%Y%m%d', timestamp_type='ms'):
data = {"success": True, "data": None, 'message': None}
try:
my_utc_time = datetime.strptime(str(my_time), format_type)
differ = my_utc_time - utc_time # 两个日期的 时间差
if timestamp_type == 'ms':
timestamp = (differ.days * 24 * 3600 + differ.seconds) * 1000 # 此处换算成毫秒
else:
timestamp = (differ.days * 24 * 3600 + differ.seconds) # 此处换算成秒
data['data'] = int(timestamp)
data['mesage'] = '{} 与 1970-01-01-08:00:00 相差约{}天'.format(my_utc_time, abs(differ.days))
except Exception as e:
data['success'] = False
data['message'] = str(e)
return data
# 时间戳转字符串
def timestamp_trans_str_time(my_timestamp: int, format_type='%Y%m%d', timestamp_type='ms'):
data = {"success": True, "data": None, 'message': None}
try:
if timestamp_type == 'ms':
time_array = time.localtime((float(abs(my_timestamp)) / 1000))
else:
time_array = time.localtime((abs(my_timestamp)))
str_time = time.strftime(format_type, time_array)
if my_timestamp < 0:
my_utc_time = datetime.strptime(time.strftime('%Y-%m-%d %H:%M:%S', time_array), '%Y-%m-%d %H:%M:%S')
str_time = (utc_time - my_utc_time + utc_time).strftime(format_type)
data['data'] = str_time
except Exception as e:
data['success'] = False
data['message'] = str(e)
return data