Files
leonpan-pc/app/core/utils/format.py
2025-10-29 22:20:21 +08:00

68 lines
2.1 KiB
Python

from datetime import datetime
def formatSize(size):
"""格式化文件大小"""
for unit in ["B", "KB", "MB", "GB", "TB"]:
if size < 1024:
return f"{size:.2f} {unit}"
size /= 1024
return f"{size:.2f} PB"
def formatDate(date_str):
"""格式化日期时间"""
try:
# 处理带小数秒的情况
if "." in date_str:
# 分割日期和小数秒部分
date_part, fractional_part = date_str.split(".", 1)
# 去除末尾的'Z'并截取前6位小数
fractional_sec = fractional_part.rstrip("Z")[:6]
# 重新组合日期字符串
normalized_date_str = f"{date_part}.{fractional_sec}Z"
date_time = datetime.strptime(normalized_date_str, "%Y-%m-%dT%H:%M:%S.%fZ")
else:
# 处理没有小数秒的情况
date_time = datetime.strptime(date_str, "%Y-%m-%dT%H:%M:%SZ")
except ValueError:
# 如果所有格式都失败,返回原始字符串
return date_str
return date_time.strftime("%Y-%m-%d %H:%M:%S")
def getFileIcon(fileType, fileName):
if fileType == "file":
suffix = fileName.split(".")[-1].lower()
icon_map = {
"txt": "Txt.svg",
"png": "Image.svg",
"jpg": "Image.svg",
"svg": "Image.svg",
"jpeg": "Image.svg",
"bmp": "Image.svg",
"gif": "Gif.svg",
"xls": "Excel.svg",
"xlsx": "Excel.svg",
"doc": "Word.svg",
"docx": "Word.svg",
"pdf": "Pdf.svg",
"ppt": "PPT.svg",
"mp4": "Video.svg",
"mkv": "Video.svg",
"mp3": "music.svg",
"wav": "music.svg",
"zip": "Zip.svg",
"rar": "Zip.svg",
"csv": "Excel.svg",
"db": "Database.svg",
"py": "Programme.svg",
"c": "Programme.svg",
"cpp": "Programme.svg",
"go": "Programme.svg",
}
return icon_map.get(suffix, "None.svg") # 默认图标
else:
return "Folder.svg"