2013-03-14 2 views
0

Я пишу Java программу, которая собрать всю метаинформацию (GPS: широта, длинные и дата) из образа (с использованием библиотеки метаданных-экстрактор-2.6.4)Как получить дату с GPSDirectory?

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 
+0

Можете ли вы предоставить ссылку на Javadoc библиотеки метаданных-экстрактора? – hd1

ответ

1

Я пытался использовать

gpsDir.getDate (GpsDirectory.TAG_GPS_DATE_STAMP), но возвращает нулевое

В docs для getDate(), он говорит: «Возвращает значение указанного тега как java.util.Date. Если значение не установлено или не может быть преобразовано, возвращается null». Таким образом, gpsDir.getDate(GpsDirectory.TAG_GPS_DATE_STAMP) возвращает нулевое значение, вероятно, потому, что вы не назвали эту линию:

gpsDir.setDate(GpsDirectory.TAG_GPS_DATE_STAMP, myDate); 

Есть ли способ, который дает дату в стандартном формате, как YYYY.MM.DD G «в» HH: мм: сс г ?

Да, просто используйте 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); 
+0

спасибо Барни, я хочу собрать дату, которая хранится с изображением. –