разные даты в Java / Android - PullRequest
       5

разные даты в Java / Android

1 голос
/ 29 июля 2011

Когда я выполняю этот код на Java и Android, я получаю разные результаты:

System.out.println(new Date(1311940549187l).toString());

  • В простой Java я получаю этот вывод: Fri Jul 29 13:55:49 CEST 2011

  • В Android я получаю этот вывод: Fri Jul 29 11:55:49 GMT+00:00 2011

Я понимаю, что это как-то связано с часовым поясом. Но мне действительно нужно получить тот же результат. Как я могу сгенерировать объект Date на основе значения Long и получить одинаковую дату в обеих средах?


Редактировать: я уже использую SimpleDateFormat, и у двух временных дат смещение составляет 2 часа. Подскажите пожалуйста как избавиться от смещения.

вот как я использую SimpleDateFormat: new SimpleDateFormat("MM-dd-yyyy HH:mm")

Ответы [ 3 ]

4 голосов
/ 29 июля 2011

Дата одинакова в обеих средах, но toString () дает разный результат, потому что две среды настроены с разным часовым поясом.

Чтобы отформатировать дату для определенного часового пояса, используйте SimpleDateFormat и установите для часового пояса определенное значение (например, GMT).

UPDATE:

TimeZone gmt = TimeZone.getTimeZone("GMT");
SimpleDateFormat format = new SimpleDateFormat("...");
format.setCalendar(Calendar.getInstance(gmt));
1 голос
/ 29 июля 2011
dFormat = new SimpleDateFormat("MM-dd-yyyy HH:mm")
TimeZone tz = TimeZone.getTimeZone("GMT:00"); 
dFormat .setTimeZone( tz );
1 голос
/ 29 июля 2011

Вы можете использовать SimpleDateFormat и конвертировать код Java, чтобы он соответствовал выводу того, что дает вам Android.

SimpleDateFormat

И наоборот (Androidконвертировать в соответствие Java)

Android SimpleDateFormat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...