You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Notepad++对时间戳秒数向上取整并移除毫秒?

当然可以用Notepad++实现这个需求!

Notepad++结合PythonScript插件能完美处理时间戳的毫秒移除和秒数向上取整(包括秒数为59、分钟为59的边界进位情况),下面是详细的实操步骤:

步骤1:安装PythonScript插件

  1. 打开Notepad++,点击顶部菜单栏的「插件」→「插件管理」
  2. 在弹出的插件列表里找到「PythonScript」,勾选后点击「安装」,安装完成后重启Notepad++

步骤2:编写并运行处理脚本

  1. 点击菜单栏的「Plugins」→「PythonScript」→「New Script」
  2. 将以下代码粘贴到新建的脚本窗口中:
    editor.beginUndoAction()
    import re
    
    def round_up_timestamp(match):
        hh = int(match.group(1))
        mm = int(match.group(2))
        ss = int(match.group(3))
        # 只要存在毫秒部分,就向上取整秒数
        ss += 1
        # 处理秒数进位到分钟
        if ss >= 60:
            ss -= 60
            mm += 1
            # 处理分钟进位到小时
            if mm >= 60:
                mm -= 60
                hh += 1
                # 可选:处理小时超过24的情况,这里默认循环为00
                if hh >= 24:
                    hh -= 24
        # 格式化回两位数字的时间格式
        return f"{hh:02d}:{mm:02d}:{ss:02d}"
    
    # 匹配所有HH:MM:SS.xx格式的时间戳
    pattern = re.compile(r'(\d{2}):(\d{2}):(\d{2})\.\d{2}')
    # 获取当前文档的全部内容
    content = editor.getText()
    # 批量替换所有符合规则的时间戳
    new_content = pattern.sub(round_up_timestamp, content)
    # 将替换后的内容写回文档
    editor.setText(new_content)
    editor.endUndoAction()
    
  3. 点击脚本窗口的「保存」按钮,命名为RoundUpTimestamps.py(保存路径默认是PythonScript的脚本文件夹,不用修改)
  4. 回到你的时间戳文档,点击「Plugins」→「PythonScript」→「Scripts」→「RoundUpTimestamps」运行脚本

运行后,你的时间戳会自动完成转换:比如00:44:27.25变成00:44:28,甚至00:59:59.99这种极端边界情况,也会正确转换为01:00:00

替代方案:手动正则替换(仅适用于无进位场景)

如果你的时间戳不会出现秒数59或分钟59的情况,可以用纯正则替换快速处理:

  1. 按下Ctrl+H打开「替换」对话框,勾选「正则表达式」选项
  2. 针对每个需要加1的秒数单独替换,比如:
    • 查找(\d{2}:\d{2}:)23\.\d{2},替换为$124
    • 查找(\d{2}:\d{2}:)42\.\d{2},替换为$143
      这种方法需要逐个处理不同的秒数,效率较低,仅适合少量固定格式的时间戳。

内容的提问来源于stack exchange,提问作者richierich82

火山引擎 最新活动