Java 如何从不同时区获取原始日期时间

Java 如何从不同时区获取原始日期时间,java,datetime,timezone,metadata-extractor,Java,Datetime,Timezone,Metadata Extractor,我正在使用Drew的元数据提取器库重命名我的照片和视频 这太棒了,但是我在重命名时遇到了一个大问题,例如视频,当我在另一个时区时,而不是在拍摄视频时 e、 g。 我的视频是在阿根廷拍摄的,日期为“3月27日星期五11:43:25 ART2020” 当我想处理我的文件时,回到欧洲,我在元数据中能找到的所有日期都已调整为CET,即“Fri Mar 2715:43:25 CET2020” 因此,我不能使用这些日期时间来重命名我的文件,因为这将导致不正确的名称。 我不能人为地更改我正在处理的每个目录的时

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

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

e、 g。 我的视频是在阿根廷拍摄的,日期为“3月27日星期五11:43:25 ART2020”

当我想处理我的文件时,回到欧洲,我在元数据中能找到的所有日期都已调整为CET,即“Fri Mar 2715:43:25 CET2020”

因此,我不能使用这些日期时间来重命名我的文件,因为这将导致不正确的名称。 我不能人为地更改我正在处理的每个目录的时区,因为这样做的目的是使一切自动化

有没有办法从我的文件中获取原始日期/时区?(mp4、jpg……所有类型的图像/视频)

非常感谢


Frank

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

许多相机根本没有时区功能。另一些则将UTC时间存储在EXIF数据中,以便照片与时间点对齐,而不考虑时区。其中,有些存储时区偏移,有些不存储

最终,如果您的相机捕获的文件中唯一的信息是基于UTC的时间戳,那么您就无法恢复原始时区,除非您碰巧知道它

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

关于如何从UTC转换到特定时区,已经有很多例子了,所以这里不包括一个。如果你搜索那个特定的问题,你会发现很多


我还要指出,有些相机存储图像拍摄地点的纬度和经度,因此,即使你在世界各地旅行,你也可以利用这些信息来进行拍摄。

这是一个常见问题,与你询问的图书馆无关,而是从你的相机如何记录时间戳开始

许多相机根本没有时区功能。另一些则将UTC时间存储在EXIF数据中,以便照片与时间点对齐,而不考虑时区。其中,有些存储时区偏移,有些不存储

最终,如果您的相机捕获的文件中唯一的信息是基于UTC的时间戳,那么您就无法恢复原始时区,除非您碰巧知道它

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

关于如何从UTC转换到特定时区,已经有很多例子了,所以这里不包括一个。如果你搜索那个特定的问题,你会发现很多


我还要指出,有些相机存储图像拍摄地点的纬度和经度,因此,即使您在世界各地旅行,也可以使用这些信息来保存图像。

不熟悉此元数据库。有没有办法告诉你原来的时区?乔尼,这就是我要找的。到目前为止我都能找到。不熟悉这个元数据库。有没有办法告诉你原来的时区?乔尼,这就是我要找的。到目前为止我都能找到。