You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Google Script获取Google Drive文件的原始创建时间

问题背景

用户将大量日志文件上传至Google Drive文件夹用于合并分析,需要保留文件原始创建/修改时间,同时通过Google Script将日志数据导入Google Sheet。目前遇到两个关键问题:

  • 仅含UTC时间戳的日志:无法获取文件原始创建时间,导致无法计算生成日志的设备UTC偏移量(常规方法为首个日志条目时间减去文件原始创建时间得到小时差)
  • 采用文件创建后ticks计时的日志:虽首个条目记录了创建时间,但该格式依赖区域设置,且存在12小时制/24小时制的差异,难以解析

另外,用户验证发现:DriveApp的getDateCreated()和getLastUpdated()方法返回的是文件上传时间,而非本地原始创建/修改时间,因此询问是否可通过Google Script获取文件原始时间(希望避免使用rclone等外部工具简化操作)

核心结论

仅通过Google Apps Script的Drive服务(包括DriveApp或Advanced Drive Service)无法直接获取上传文件的原始创建/修改时间。原因是Google Drive在接收上传文件时,会自动将上传时间设为文件的创建和更新时间,文件本地的原始时间元数据不会被默认同步到Drive的文件属性中。

替代解决方案

1. 上传时手动补充原始时间元数据

  • 修改文件名:上传前将文件名改为包含原始创建时间的格式,例如[202405201430]_sample_log.txt,后续通过Google Script提取文件名中的时间字符串进行解析
  • 填写文件描述:上传后在Drive文件的「描述」字段中手动填入原始创建/修改时间,使用DriveApp.getFileById(id).getDescription()即可读取该信息

2. 利用Google Drive自定义属性批量注入原始时间

如果能提前导出本地文件列表(包含文件名和原始创建/修改时间),可以通过Google Script调用Advanced Drive Service批量给对应Drive文件添加自定义属性:

function addOriginalTimeProperty(fileId, originalTimeStr) {
  var file = Drive.Files.get(fileId);
  file.properties = file.properties || {};
  file.properties.originalCreatedTime = originalTimeStr; // 传入ISO格式时间字符串,如"2024-05-20T14:30:00Z"
  Drive.Files.update(file, fileId);
}

之后即可通过DriveApp.getFileById(id).getProperty("originalCreatedTime")读取原始时间。

3. 针对日志本身的适配方案

  • 对于UTC时间戳日志:若日志中包含设备ID、事件关联的本地时间线索等信息,可尝试通过这些信息推断设备时区,替代文件原始时间计算偏移量
  • 对于ticks计时日志:尝试枚举可能的时间格式,用Utilities.parseDate()批量解析首个条目的创建时间,示例代码:
function parseLogCreationDate(dateStr) {
  // 枚举常见的时间格式,覆盖12/24小时制、不同日期顺序
  var possibleFormats = [
    "MM/dd/yyyy hh:mm:ss a",
    "MM/dd/yyyy HH:mm:ss",
    "dd/MM/yyyy hh:mm:ss a",
    "dd/MM/yyyy HH:mm:ss",
    "yyyy-MM-dd hh:mm:ss a",
    "yyyy-MM-dd HH:mm:ss"
  ];
  
  for (var format of possibleFormats) {
    try {
      // 尝试用UTC时区解析,后续可根据实际情况调整时区参数
      return Utilities.parseDate(dateStr, "UTC", format);
    } catch (e) {
      // 格式不匹配,继续尝试下一个
      continue;
    }
  }
  return null; // 所有格式匹配失败
}

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:10:21