---
title: 如何为老照片添加 Exif 日期数据？
date: 2019-03-24T08:51:34Z
modified: 2019-03-24T13:16:29Z
permalink: "https://www.appinn.com/how-to-add-exif-date-for-old-picture/"
type: post
status: publish
excerpt: ""
categories:
  - 电脑技巧
  - 问答
tags:
  - 电脑技巧
  - 问答
  - excel
  - EXIF
  - jhead
  - 日期
  - 老照片
featured_image: "https://www.appinn.com/wp-content/uploads/2019/03/excelandjhead.jpgo_.jpg"
author: 青小蛙
timestamp: 2019-03-24T13:16:29Z
---

青小蛙有一批老照片是从 [Yupoo](https://www.appinn.com/yupoo-down-export-photos-url.md) 上备份回来的，当初本身也没有 Exif 信息，完全没有。但值得庆幸的是，照片名包含了完整的日期和时间：18-08-07\_1723.jpg，也就是 dd-mm-yy\_hhmm.jpg（日月年时分），这就是所有的原始数据了。那么，就用这些数据为老照片添加 Exif 日期呗。

![](https://static2.appinn.com/images/201903/excelandjhead.jpg)

Photo by [Fancycrave.com](https://www.pexels.com/@fancycrave?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels) from [Pexels](https://www.pexels.com/photo/collection-of-gray-scale-photos-699782/?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels)

> **可交换图像文件格式**（英语：Exchangeable image file format，官方简称**Exif**），是专门为数码相机的照片设定的，可以记录数码照片的属性信息和拍摄数据。

有了 Exif 日期数据，就能够让现在的各种网络相册按照拍摄时间排序，不至于让相册中过于混乱，也便于未来根据时间检索（青小蛙现在找照片都是先确定时间，再去看时间线，非常方便）。

之后在[微博上询问](https://weibo.com/1684197391/Hmg0aq7du)了一圈是否有根据文件名修改 Exif 信息的软件，得到的结果和预期一致：没有。但青小蛙知道一个很强悍的小工具 [jhead](https://www.appinn.com/jhead.md)，它可以批量修改 Exif 信息，自己动手吧。

那么思路来了，通过文件名提取日期信息，然后在使用 jhead 命令修改即可：


```
jhead -mkexif -ts2007:08:12-16:39:00 12-08-07_1639.jpg
```

上面就是 jhead 的用法，为 12-08-07\_1639.jpg 文件创建最小 Exif 数据，然后设置时间为 yyyy:mm:dd-hh:mm:ss。只需要将原始照片名提取出来，然后调整命令格式就是了。

## 第 1 步：导出文件名列表

导出文件名列表，这一步简单，只需要 dir 或者 ls 即可：

CMD: dir /w > name-win.txt终端: ls > name-macos.txt![](https://static2.appinn.com/images/201903/2019-03-24-4-32-44.jpg)

在 Windows 里，dir 还输出里一些文件夹信息，需要手动处理一下，macOS 下就是纯粹的日期列表了，可以直接使用。

## 第 2 步：提取日期信息

这一步最关键了，有很多种方法，比如正则表达式，但青小蛙只会 Excel…而且看起来 Excel 更简单一些，思路就是通过 LEFT / RIGHT / MID 等函数提取文件名的部分区域，然后重新组合成需要的格式：

**原始数据格式**：12-08-07\_1310.jpg

**目标数据格式**：2007:08:12-13:10:00

过程就不列出来了，总之就是一位一位的测试，然后将所有的公式组合起来就行了，公式如下：


```
=CONCAT(20,mid(A2,7,2))&":"&MID(A2,4,2)&":"&LEFT(A2,2)&"-"&MID(A2,10,2)&":"&MID(A2,12,2)&":00"
```

上面这一段，相当于 =CONCAT(20年:月:日-小时:分钟:00)，就是我们需要的目标数据格式了。

## 第 3 步：组合 jhead 命令行

最终命令行：


```
jhead -mkexif -ts2007:08:12-12:45:00 12-08-07_1245.jpg
```

在 Excel 里，只需要用 & 把所有信息组合起来就行了：


```
="jhead -mkexif -ts"&""&CONCAT(20,mid(A2,7,2))&":"&MID(A2,4,2)&":"&LEFT(A2,2)&"-"&MID(A2,10,2)&":"&MID(A2,12,2)&":00"&" "&A2
```

![](https://static2.appinn.com/images/201903/2019-03-244-45-28.jpg)

## 第 4 步：运行 jhead 命令

将最终结果复制下来，保存为 .sh / .bat 文件，然后运行就行了。

![](https://static2.appinn.com/images/201903/2019-03-2412-47-31.jpg)

最终，为这些老照片获得了原始拍摄日期，上传网络相册后也能正确识别，完美。

## Topics

**分类目录:** [电脑技巧](https://www.appinn.com/category/pcskill/?output_format=md), [问答](https://www.appinn.com/category/question-and-answers/?output_format=md)

**标签:** [excel](https://www.appinn.com/tag/excel/?output_format=md), [EXIF](https://www.appinn.com/tag/exif/?output_format=md), [jhead](https://www.appinn.com/tag/jhead/?output_format=md), [日期](https://www.appinn.com/tag/%e6%97%a5%e6%9c%9f/?output_format=md), [老照片](https://www.appinn.com/tag/%e8%80%81%e7%85%a7%e7%89%87/?output_format=md)