Python datetime、timestramp、str各种时间字符串类型转换工具类
import time
from datetime import datetime, timedelta
class DateTimeConvert(object):
def __init__(self):
super(DateTimeConvert, self).__init__()
@staticmethod
def timestamp_convert_str(str_format, timestamp):
"""
时间戳 转 字符串
:param timestamp: 1676554320
:param str_format:"%Y-%m-%d %H:%M:%S"
:return:
"""
timestamp = int(timestamp) if isinstance(
timestamp, str) and len(timestamp) == 10 else timestamp
return time.strftime(str_format, time.localtime(timestamp))
@staticmethod
def str_convert_timestamp(date_str, str_format):
"""
字符串 转 时间戳
:param date_str:"2024-02-13"
:param str_format:"%Y-%m-%d %H:%M:%S"
:return:
"""
return time.mktime(time.strptime(date_str, str_format))
@staticmethod
def datetime_convert_str(date_time, str_format):
"""
datetime 转 字符串
:param date_time:datetime.now()
:param str_format:"%Y-%m-%d %H:%M:%S"
:return:
"""
return datetime.strftime(date_time, str_format)
@staticmethod
def str_convert_datetime(date_time_str, date_time_format):
"""
字符串 转 datetime
:param date_time_str:2023-02-16 21:32:00
:param date_time_format:"%Y-%m-%d %H:%M:%S"
:return:
"""
return datetime.strptime(date_time_str, date_time_format)
@staticmethod
def datetime_convert_timestamp(date_time):
"""
datetime 转 成时间戳
:param date_time:datetime.now()
:return:
"""
return datetime.timestamp(date_time)
@staticmethod
def timestamp_convert_datetime(timestamp):
"""
时间戳 转 datetime
:param timestamp:
:return:
"""
timestamp = int(timestamp) if not isinstance(
timestamp, int) else timestamp
return datetime.fromtimestamp(timestamp)
@staticmethod
def time_difference(
date_time,
type,
day=0,
second=0,
microsecond=0,
millisecond=0,
minute=0,
hour=0,
week=0):
"""
时间差 时间加减
:param date_time:
:param type: "+"/"-"
:param days:日
:param seconds:秒
:param microseconds:微秒
:param milliseconds:毫秒
:param minutes:分
:param hours:时
:param weeks:周
:return:
"""
if not isinstance(date_time, datetime):
raise Exception("date_time type is not datetime.")
elif type not in ["+", "-"]:
raise Exception(
f"{DateTimeConvert.time_difference.__name__} function not support type:{type}")
if type == "+":
return date_time + timedelta(days=day,
seconds=second,
microseconds=microsecond,
milliseconds=millisecond,
minutes=minute,
hours=hour,
weeks=week)
elif type == "-":
return date_time - timedelta(days=day,
seconds=second,
microseconds=microsecond,
milliseconds=millisecond,
minutes=minute,
hours=hour,
weeks=week)
raise Exception(
f"{DateTimeConvert.time_difference.__name__} function error.")