Время события в Java хранится как количество миллисекунд между этим событием и 1 января 1970, 00:00:00 GMT (например, как если бы это произошло в Лондоне)
Поэтому, когда мы говорим дату и время в Java, представленный java.util.Date или java.util.Calendar, мы всегда говорим об абсолютном числе, независимо от часового пояса.
Часовой пояс имеет смысл только тогда, когда мы пытаемся вывести дату/время в виде строки. На верхней части моей головы, я могу вспомнить два способа сделать это:
- использовать календарь, установить часовой пояс, используйте метод Get (Calendar.XXX), чтобы получить индивидуальную дату/время компонента в часовом поясе вы хотите
- использовать SimpleDateTimeFormat, установить часовой пояс, формат всей даты/время в одну строку в часовом поясе вы хотите
там действительно нет такого понятия, как «время преобразования зоны» в Java, но есть временная зона конкретное форматирование.
Однако, если вы хотите, чтобы сделать вещи действительно сбивает с толку, вы можете добавить «коррекцию» к календаря значения времени, так что он будет возвращать значения полей, как если бы это было в PST часовой пояс:
private Calendar getPSTTime(Calendar utcTime)
{
TimeZone pstZ = TimeZone.getTimeZone("America/Los_Angeles");
long offset = pstZ.getOffset(utcTime.getTime());
Calendar pacificTime = Calendar.getInstance();
pacificTime.setTimeInMillis(utcTime.getTimeInMillis()-offset);
return pacificTime;
}
Там нет нужно указать «язык программирования Java» в названии; вы включили в него тег, и система тегов здесь очень хорошо работает без какой-либо помощи. Любая информация, которую вы можете предоставить с тегами, не требуется в теме, и вы можете использовать пространство, чтобы лучше описать свой вопрос. (Вы также обычно должны * задавать вопрос * вместо того, чтобы просто указывать цель, и показать некоторые усилия, которые вы предприняли при самом решении проблемы самостоятельно.) –
Также обман [Как обрабатывать календарные часовые пояса с использованием Java?] (http://stackoverflow.com/q/230126/62576), [Преобразование времени UTC в локальный часовой пояс в Java] (http://stackoverflow.com/questions/3010035/converting-a-utc-time-to -a-local-time-zone-in-java?), [Преобразование даты с UTC на PST в Java] (http://stackoverflow.com/questions/6075912/converting-date-from-utc-to-pst- in-java? rq = 1) и несколько других. Пожалуйста, по крайней мере, сделайте основной поиск здесь, прежде чем отправлять вопрос, чтобы узнать, уже ли он задан и ответил. Некоторые из тех, кого я связал, находятся в списке «Related» справа. Благодарю. –
Я действительно искал существующие сообщения. Это не помогло мне. Мой вопрос конкретный. Кроме того, я не знаю, как лучше я могу описать эту функцию. Я дал подпись метода. Люди, которые написали код Java, должны понимать, чего я пытаюсь достичь. – supreethmurthy