Является ли часовой пояс java.sql.Timestamp специфичным?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Является ли часовой пояс java.sql.Timestamp специфичным?

Сообщение Anonymous »

Мне нужно сохранить дату и время в формате UTC в базе данных.

Я преобразовал дату и время, заданные в определенном часовом поясе, в формат UTC. для этого я выполнил приведенный ниже код.

Моя дата и время ввода — «20121225 10:00:00 Z», часовой пояс — «Азия/Калькутта»

Мой сервер/БД (оракул ) работает в том же часовом поясе (IST) «Азия/Калькутта»


Получить объект Date в этом конкретном часовом поясе< /p>

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

        String date = "20121225 10:00:00 Z";
String timeZoneId = "Asia/Calcutta";
TimeZone timeZone = TimeZone.getTimeZone(timeZoneId);

DateFormat dateFormatLocal = new SimpleDateFormat("yyyyMMdd HH:mm:ss z");
//This date object is given time and given timezone
java.util.Date parsedDate = dateFormatLocal.parse(date + " "
+ timeZone.getDisplayName(false, TimeZone.SHORT));

if (timeZone.inDaylightTime(parsedDate)) {
// We need to re-parse because we don't know if the date
// is DST until it is parsed...
parsedDate = dateFormatLocal.parse(date + " "
+ timeZone.getDisplayName(true, TimeZone.SHORT));
}

//assigning to the java.sql.TimeStamp instace variable
obj.setTsSchedStartTime(new java.sql.Timestamp(parsedDate.getTime()));
Сохранить в БД

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

        if (tsSchedStartTime != null) {
stmt.setTimestamp(11, tsSchedStartTime);
} else {
stmt.setNull(11, java.sql.Types.DATE);
}
ВЫВОД

БД (оракул) сохранила ту же дату и время: " 20121225 10:00:00 не в формате UTC.

Я подтвердил из приведенного ниже sql.

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

     select to_char(sched_start_time, 'yyyy/mm/dd hh24:mi:ss') from myTable
Мой сервер БД также работает в том же часовом поясе «Азия/Калькутта»

Это дает мне следующий вид:


[*]

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

Date.getTime()
не в формате UTC
[*]Или временная метка влияет на часовой пояс при сохранении в БД.
Что я здесь делаю не так?


Еще один вопрос:

Будет ли timeStamp.toString() напечатан в местном часовом поясе, как это делает java.util.date? Не UTC?

Подробнее здесь: https://stackoverflow.com/questions/140 ... e-specific
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»