| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import datetime
- class TimeFormatUtil:
-
- @staticmethod
- def object_format_datetime(obj):
- """
- :param obj: 输入一个对象
- :return:对目标对象所有datetime类型的属性格式化
- """
- for attr in dir(obj):
- value = getattr(obj, attr)
- if isinstance(value, datetime.datetime):
- setattr(obj, attr, value.strftime('%Y-%m-%d %H:%M:%S'))
- return obj
-
- @staticmethod
- def list_format_datetime(lst):
- """
- :param lst: 输入一个嵌套对象的列表
- :return: 对目标列表中所有对象的datetime类型的属性格式化
- """
- for obj in lst:
- for attr in dir(obj):
- value = getattr(obj, attr)
- if isinstance(value, datetime.datetime):
- setattr(obj, attr, value.strftime('%Y-%m-%d %H:%M:%S'))
- return lst
-
- @classmethod
- def format_datetime_dict_list(cls, dicts):
- """
- 递归遍历嵌套字典,并将 datetime 值转换为字符串格式
-
- :param dicts: 输入一个嵌套字典的列表
- :return: 对目标列表中所有字典的datetime类型的属性格式化
- """
- result = []
-
- for item in dicts:
- new_item = {}
- for k, v in item.items():
- if isinstance(v, dict):
- # 递归遍历子字典
- new_item[k] = cls.format_datetime_dict_list([v])[0]
- elif isinstance(v, datetime.datetime):
- # 如果值是 datetime 类型,则格式化为字符串
- new_item[k] = v.strftime('%Y-%m-%d %H:%M:%S')
- else:
- # 否则保留原始值
- new_item[k] = v
- result.append(new_item)
-
- return result
|