SimpleDateFormat в Android дает нежелательный часовой пояс в Android 1.6 - PullRequest
2 голосов
/ 03 августа 2011

Учитывая следующее:

String dt = "Wed Jan 1 12:34:03 2010";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy");
Date output = sdf.parse(dt);

Производит:

Wed Jan 1 12:34:03 ADT 2010

Откуда берется часовой пояс? У меня нет z в моем шаблоне формата.

Спасибо, Дуг

Ответы [ 2 ]

3 голосов
/ 03 августа 2011

Вы, очевидно, отображаете результат toString() объекта Date, например

System.out.println(output);

Формат указан в javadoc , и он действительно включает часовой пояс.

ToString

public String toString()

Преобразует этот Date объект в String формы:

dow mon dd hh:mm:ss zzz yyyy

Вам необходимо SimpleDateFormat#format(), чтобы преобразовать полученный объект Date в String в нужном формате перед его представлением. Например,

String s = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(output);
System.out.println(s); // 01-01-2010 12:34:03
0 голосов
/ 03 августа 2011

При создании объекта Date часовой пояс устанавливается в системных настройках.

попробуйте output.getTimeZoneoffset () и он вернет смещение в минутах (для ADT это -180)

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