преобразование даты и времени в определенный формат - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть файл класса, в котором поле даты имеет значение типа «1329242400». Это значение в пользовательском интерфейсе представлено как «0 день 00:02:56». Я попробовал ниже, но я получаю дату в 1970-х.

String attr = "1329242400";
Date cDate = new Date(Long.parseLong(attr));

Выходные данные: «Пт 16 января 04:16:55 EST 1970»

Пробовал ниже,

GregorianCalendar c = new GregorianCalendar();
c.setTime(cDate);
XMLGregorianCalendar dDt = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);

Вывод "1970-01-16T04: 16: 55.200-05: 00"

Какой еще метод конвертации я должен использовать, чтобы получить «0 дней 00:02:56» или как «Вторник 14 февраля 00:02:56 EST 2011»?

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012

Конструктор ожидает, что отметка времени будет в миллисекундах, поэтому вы отключаетесь на 3 порядка:

Date cDate = new Date(Long.parseLong(attr) * 1000);
                                           ^^^^^^
1 голос
/ 14 февраля 2012
GregorianCalendar c = new GregorianCalendar();
c.setTime(cDate);
XMLGregorianCalendar dDt = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);

SimpleDateFormat sdf = new SimpleDateFormat ("E MM dd hh:mm:ss z");
sdf.format(c.getTime());

http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

...