将时间改为上海时间

要将时间改为上海时间,可以使用 pytz 库来获取上海时区的时间。以下是优化后的代码:

import os
from datetime import datetime
import pytz

@staticmethod
def add_timestamp_to_filename(file_path, model):
    # 获取上海时区
    shanghai_tz = pytz.timezone('Asia/Shanghai')
    # 获取当前时间并转换为上海时间
    current_time = datetime.now(shanghai_tz).strftime("%Y%m%d_%H%M%S")
    
    # 分割文件路径和文件名
    directory, filename = os.path.split(file_path)
    name, ext = os.path.splitext(filename)
    
    # 替换模型字符串中的冒号为短横线
    modified_string = model.replace(":", "-")
    
    # 构建新的文件名
    new_filename = f"{name}_{current_time}_{modified_string}{ext}"
    
    # 返回新的文件路径
    return os.path.join(directory, new_filename)

代码说明:

  1. 时区处理:使用 pytz.timezone('Asia/Shanghai') 获取上海时区对象,然后通过 datetime.now(shanghai_tz) 获取当前上海时间。
  2. 时间格式化:使用 strftime("%Y%m%d_%H%M%S") 将时间格式化为 YYYYMMDD_HHMMSS 的字符串格式。
  3. 文件名构建:将原始文件名、时间戳和修改后的模型字符串拼接成新的文件名。

依赖库:

pytz:用于处理时区信息。如果尚未安装,可以通过 pip install pytz 进行安装。

示例:

假设当前上海时间为 2023年10月5日 14:30:45,模型字符串为 model:example,原始文件路径为 /path/to/file.txt,则调用该函数后返回的文件路径为:

/path/to/file_20231005_143045_model-example.txt

这样,文件名将包含上海时间的时间戳,并且模型字符串中的冒号已被替换为短横线。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值