如何修改文件保存时间和日期(图文)
修改文件的保存时间和日期可以通过多种方式实现,以下是不同操作系统和编程语言的方法:
1. 命令行方式
Linux/macOS 系统:
bash
# 修改文件的访问时间和修改时间 touch -a -t YYYYMMDDHHMM filename # 只修改访问时间 touch -m -t YYYYMMDDHHMM filename # 只修改修改时间 touch -t YYYYMMDDHHMM filename # 同时修改两种时间 # 示例:将文件时间改为2024年1月1日14:30 touch -t 202401011430 myfile.txtWindows 系统:
cmd
# 使用 PowerShell powershell "$file = Get-Item 'filename'; $file.LastWriteTime = '2024-01-01 14:30:00'" powershell "$file = Get-Item 'filename'; $file.CreationTime = '2024-01-01 14:30:00'" # 使用命令行工具 (需要第三方工具如 nircmd) nircmd setfiletime "filename" "01-01-2024 14:30:00" "01-01-2024 14:30:00"2. 编程语言实现
Python:
python
import os import time from datetime import datetime # 方法1: 使用 os.utime() def change_file_time(filepath, new_time): """ 修改文件时间戳 :param filepath: 文件路径 :param new_time: 新的时间 (datetime对象) """ timestamp = new_time.timestamp() os.utime(filepath, (timestamp, timestamp)) # (访问时间, 修改时间) # 示例使用 new_datetime = datetime(2024, 1, 1, 14, 30, 0) change_file_time('myfile.txt', new_datetime) # 方法2: 使用 pathlib (Python 3.4+) from pathlib import Path def change_file_time_pathlib(filepath, new_time): path = Path(filepath) timestamp = new_time.timestamp() path.touch(times=(timestamp, timestamp)) # 批量修改多个文件 import glob for file in glob.glob("*.txt"): change_file_time(file, new_datetime)JavaScript (Node.js):
javascript
const fs = require('fs'); // 修改文件时间戳 function changeFileTime(filepath, newDate) { fs.utimes(filepath, newDate, newDate, (err) => { if (err) { console.error('修改文件时间失败:', err); } else { console.log('文件时间修改成功'); } }); } // 示例使用 const newDate = new Date('2024-01-01T14:30:00'); changeFileTime('myfile.txt', newDate); // 同步版本 try { fs.utimesSync('myfile.txt', newDate, newDate); console.log('文件时间修改成功'); } catch (err) { console.error('修改文件时间失败:', err); }PHP:
php
<?php // 修改文件时间戳 function changeFileTime($filepath, $newTime) { // $newTime 可以是时间戳或日期字符串 if (is_string($newTime)) { $timestamp = strtotime($newTime); } else { $timestamp = $newTime; } return touch($filepath, $timestamp); } // 示例使用 $newTime = '2024-01-01 14:30:00'; if (changeFileTime('myfile.txt', $newTime)) { echo "文件时间修改成功"; } else { echo "文件时间修改失败"; } // 批量修改 $files = glob("*.txt"); foreach ($files as $file) { changeFileTime($file, $newTime); } ?>Java:
java
import java.io.File; import java.util.Date; public class FileTimeModifier { public static void changeFileTime(String filepath, Date newDate) { File file = new File(filepath); if (file.exists()) { boolean success = file.setLastModified(newDate.getTime()); if (success) { System.out.println("文件时间修改成功"); } else { System.out.println("文件时间修改失败"); } } else { System.out.println("文件不存在"); } } public static void main(String[] args) { Date newDate = new Date(2024-1900, 0, 1, 14, 30); // 年份需要减1900,月份从0开始 changeFileTime("myfile.txt", newDate); } }3. 批量处理脚本
Python 批量处理脚本:
python
import os import glob from datetime import datetime def batch_change_time(directory, pattern="*", new_time=None): """ 批量修改目录中文件的时间 :param directory: 目录路径 :param pattern: 文件匹配模式 :param new_time: 新的时间,默认为当前时间 """ if new_time is None: new_time = datetime.now() timestamp = new_time.timestamp() search_pattern = os.path.join(directory, pattern) for filepath in glob.glob(search_pattern): try: if os.path.isfile(filepath): os.utime(filepath, (timestamp, timestamp)) print(f"已修改: {filepath}") except Exception as e: print(f"修改失败 {filepath}: {e}") # 使用示例 batch_change_time("/path/to/files", "*.txt", datetime(2024, 1, 1, 14, 30))4. GUI 工具
Windows:
- 使用 Total Commander 等文件管理器
- 右键文件 → 属性 → 详细信息 → 修改时间属性
macOS:
- 使用 Finder,选择文件后按 Cmd+I 查看信息窗口
- 第三方工具如 "A Better Finder Attributes"
Linux:
- 使用 Nautilus 或其他文件管理器的属性对话框
- 第三方工具如 "bulk_rename_utility"
注意事项:
- 权限要求: 修改系统文件时间可能需要管理员权限
- 时间格式: 不同系统对时间格式的要求可能不同
- 备份重要: 修改关键文件时间前建议备份
- 同步影响: 修改时间可能影响备份软件或其他依赖时间的应用

更新时间:2025-12-15 14:55:06
下一篇:文件的创建时间可以修改吗(图文)
