0

画像からすべてのメタ情報(GPS:緯度、経度、日付)を収集するJavaプログラムを作成しています(ライブラリmetadata-extractor-2.6.4を使用)

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

「Date : 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 に答える