如何从其他时区获取原始日期时间

时间:2020-03-27 16:01:15

标签: java datetime timezone metadata-extractor

我正在使用Drew的元数据提取器库重命名我的照片和视频。

这太棒了,但是重命名时遇到了一个主要问题,例如,当我在另一个时区而不是在拍摄视频时重命名时。

例如 我的视频是在阿根廷拍摄的,日期时间为``2020年3月27日 11:43:25 ART ”。

当我想处理文件时,回到欧洲,我可以在元数据中找到的所有日期都适应了CET,即“ 2020年3月27日 15:43:25 CET

因此,我不能使用这些日期时间来重命名我的文件,因为这将导致名称不正确。 我无法手动更改正在处理的每个目录的时区,因为它可以自动完成所有操作。

是否可以从文件中获取原始的日期时间/时区? (mp4,jpg,...所有类型的图像/视频)。

非常感谢。

坦率

1 个答案:

答案 0 :(得分:1)

这是一个常见问题,与您要查询的库无关,而是与您的相机如何记录开始的时间戳有关。

许多相机根本没有时区功能。其他人则将UTC时间存储在EXIF数据中,因此无论时区如何,照片都与一个时间点对齐。在这些功能中,有的存储时区偏移,有的不存储。

如果您的相机捕获的文件中唯一的信息是基于UTC的时间戳,那么除非您碰巧知道它,否则恢复原始时区将无济于事。

幸运的是,您知道自己在阿根廷,因此可以从元数据提取器库的输出中获取基于UTC的时间戳(应该在其中,但是您必须查找它) )。然后,您可以将其转换为阿根廷时间(在Java代码中使用"America/Buenos_Aires"作为时区ID)。

已经有很多关于如何从UTC转换为特定时区的示例,因此在此不再赘述。如果您搜索该特定问题,您会发现很多。

我还要指出,有些相机存储了拍摄图像的纬度和经度,因此即使您环游世界,也可以使用此类信息来derive the time zone identifier

相关问题