0

我正在编写一个 java 程序,它从图像中收集所有元信息(GPS:纬度、经度和日期)(使用库 metadata-extractor-2.6.4)

 GpsDirectory gpsDir = (GpsDirectory) metadata.getDirectory(GpsDirectory.class);
 GpsDescriptor gpsDesc = new GpsDescriptor(gpsDir);
 System.out.println("Date : " + gpsDesc.getGpsTimeStampDescription());

我得到像“日期:15:45:26 UTC”这样的日期。有没有任何方法可以像 yyyy.MM.dd G 'at' HH:mm:ss z 这样的标准格式给出日期?

我试着用

  gpsDir.getDate(GpsDirectory.TAG_GPS_DATE_STAMP), but it returns null 
4

1 回答 1

1

我试着用

gpsDir.getDate(GpsDirectory.TAG_GPS_DATE_STAMP),但它返回 null

在 的文档getDate(),它说:“将指定标记的值作为 java.util.Date 返回。如果该值未设置或无法转换,则返回 null。” 因此,gpsDir.getDate(GpsDirectory.TAG_GPS_DATE_STAMP)返回 null 可能是因为您没有调用此行:

gpsDir.setDate(GpsDirectory.TAG_GPS_DATE_STAMP, myDate); 

有没有任何方法可以像 yyyy.MM.dd G 'at' HH:mm:ss z 这样的标准格式给出日期?

是的,只需使用SimpleDateFormat. 我还没有测试过这段代码,但这应该可以工作:

final String OLD_FORMAT = "...";
final String NEW_FORMAT = "yyyy.MM.dd G at HH:mm:ss z";

String oldDateString = gpsDesc.getGpsTimeStampDescription();
String newDateString;

SimpleDateFormat sdf = new SimpleDateFormat(OLD_FORMAT);
Date d = sdf.parse(oldDateString);
sdf.applyPattern(NEW_FORMAT);
newDateString = sdf.format(d);
于 2013-03-14T18:44:01.213 回答