Объект Calendar возвращает неверную зону

Ответить
Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Объект Calendar возвращает неверную зону

Сообщение powercat » 25 ноя 2012, 16:52

Код

Код: Выделить всё

	private long RightNowInMillis(){
		Calendar calendar=Calendar.getInstance();
		calendar.setTimeInMillis(System.currentTimeMillis());
		return calendar.getTimeInMillis();
	}
И код (более короткий)

Код: Выделить всё

	private long RightNowInMillis(){
		Calendar calendar=Calendar.getInstance();
		return calendar.getTimeInMillis();
	}
Оба возвращают неправильный час. У меня UTC+4 (Москва). А эти коды возвращают UTC+0. У обоих offset в логах нулевой. т.е. зона неверная и возврат с разницей в 4 часа ))
Думал, косяк в винде, но она что в трее, что запросом через командную строку echo %time% показывает правильное время.

Собственно вопрос - где собаки зарылись?

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Объект Calendar возвращает неверную зону

Сообщение neoksi » 26 ноя 2012, 06:34

Косяк в том, что ты календарю сам не определил часовую зону и он создался с использованием UTC+0 (Unix Time).
Разверни вопрос и скажи, что именно ты хочешь получить в итоге?
К примеру, этот код возвращает часовую зону устройства:

Код: Выделить всё

TimeZone.getDefault().getID()

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Объект Calendar возвращает неверную зону

Сообщение powercat » 26 ноя 2012, 10:38

Мне надо определить время устройства, чтобы сработало оповещение.

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Объект Calendar возвращает неверную зону

Сообщение powercat » 26 ноя 2012, 11:06

хахаха...ржака...вот я туплюуууу...все правильно, в AVD выставлено UTC+0 ))))))) а я на время компа смотрю ))))

dubok79
Сообщения: 12
Зарегистрирован: 24 ноя 2012, 13:41

Re: Объект Calendar возвращает неверную зону

Сообщение dubok79 » 08 дек 2012, 11:39

Я делаю так:
/**метод возвращает объект-календарь с учетом временной зоны по умолчанию*/
public static Calendar getCalendar(){
TimeZone tz = TimeZone.getDefault();
return Calendar.getInstance(tz);
}

Аватара пользователя
powercat
Сообщения: 508
Зарегистрирован: 20 июл 2012, 11:31

Re: Объект Calendar возвращает неверную зону

Сообщение powercat » 10 дек 2012, 09:18

dubok79 писал(а):Я делаю так:
/**метод возвращает объект-календарь с учетом временной зоны по умолчанию*/
public static Calendar getCalendar(){
TimeZone tz = TimeZone.getDefault();
return Calendar.getInstance(tz);
}
Calendar.getInstance(tz); - это и так делает, без лишних действий ) берет ту, что на устройстве.

Ответить