![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Forza |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 12.9.2004 Репутация: нет Всего: 2 |
Получаю дату/время из файла в виде строки, которая, например, может выглядеть так - "2009.03.29 02:30".
Хочу преобразовать её в Date или Calendar, например:
Умная Джава знает, что времени 02:30 не может быть 29-го марта 2009-го года в России, и прибавляет к этому времени 1 час. Таким образом в timeStampCalendar я имею уже 3 часа 30 минут. Как сделать, чтобы время сохранилось в Calendar, как 02:30 безо всяких изменений? Пытался экспериментировать с TimeZone/Locale при объявлении Календаря или ДэйтФормата (см. примеры ниже - Китай выбран, т.к. у него нет перехода на летнее время) - не помогло. ![]()
Что ещё может помочь, кроме изменения настроек на уровне ОС? В идеале надо иметь такой "режим", при котором перевод на летнее/зимнее время будет отсутствовать в принципе. |
||||
|
|||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
|
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Как вариант, вместо:
использовать
если заранее известно и фиксировано смещение от гринвича. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Forza |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 12.9.2004 Репутация: нет Всего: 2 |
Спасибо за ответы.
Когда в первый раз сам смотрел, не заметил, что можно заменить TimeZone у DateFormat (наверное, это было так потому, что у Календаря и ТаймЗона, и Локаль явно присутствовали в конструкторе, а у ДэйтФормата через конструктор можно передать только Локаль). Кстати, мою проблему можно решить и более коротко, не создавая свою собственную TimeZone:
|
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Поскольку времени 2:30 нет, parse() должно бы выбросить исключение (если вызвано setLenient(true) или сделать тоже самое, что и при 1:90. Так что если вводится правильное время никаких ошибок нет.
Но осенью во время перехода от летнего к зимнему времени 2:30 может быть как летним, так и зимним временем и существует потеря информации. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |