时间戳与字符串之间的相互转换

时间戳与字符串之间的相互转换

# -*- 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
posted @ 2023-02-28 14:34  LittleDuo  阅读(235)  评论(0)    收藏  举报