Google Takeout中JSON关联GIF后日期未更新问题求助
问题原因及解决办法
核心原因
- GIF格式元数据限制:标准GIF不支持EXIF规范里的
CreateDate/ModifyDate标签,原命令实际是把时间写入了GIF的扩展元数据(如XMP字段),但系统资源管理器默认读取的是文件系统层面的创建/修改时间,而非这些扩展元数据,所以视觉上看不到变化。 - 字段匹配错误:
CreateDate/ModifyDate是针对JPG这类支持EXIF的格式设计的,对GIF无效;要修改系统显示的文件时间,需用exiftool专门的FileCreateDate/FileModifyDate字段。
修正后的命令
直接替换为文件系统时间对应的参数,命令如下:
exiftool -r -tagsfromfile "%d/%F.json" "-FileCreateDate<PhotoTakenTimeTimestamp" "-FileModifyDate<PhotoTakenTimeTimestamp" -ext gif -overwrite_original "G:\Gifs2"
验证方法
执行命令后,用以下命令查看文件所有时间字段,确认修改是否生效:
exiftool -time:all -a -G1 "G:\Gifs2\example.gif"
输出中会显示FileCreateDate和FileModifyDate已更新为JSON时间戳对应的日期。
额外说明
如果需要同时给GIF写入专业图片工具可识别的元数据时间,可补充XMP字段映射:
exiftool -r -tagsfromfile "%d/%F.json" "-FileCreateDate<PhotoTakenTimeTimestamp" "-FileModifyDate<PhotoTakenTimeTimestamp" "-XMP:CreateDate<PhotoTakenTimeTimestamp" "-XMP:ModifyDate<PhotoTakenTimeTimestamp" -ext gif -overwrite_original "G:\Gifs2"
内容的提问来源于stack exchange,提问作者Nemesis84
相关产品推荐
相关产品推荐

