Я пытаюсь запросить mysql DATETIME с Java. Я знаю часовой пояс сервера, но я не могу вытащить datetime с часовым поясом, как я ожидал.Запросить mysql DATETIME с заданным часовым поясом в Java
ResultSet rs = st.executeQuery(...);
Date d1=rs.getTime(i, Calendar.getInstance(TimeZone.getTimeZone("UTC")));
Date d2=rs.getTime(i, Calendar.getInstance(TimeZone.getTimeZone("PST")));
System.out.println("d1: "+d1.getTime());
System.out.println("d2: "+d2.getTime());
Это оставляет меня:
d1: 40258000
d2: 40258000
я упускаю что-то основной здесь?
ResultSet.getDate()
учитывает Календар. Но я не могу использовать его, потому что он обрезает информацию о времени. По-прежнему странно, ResultSet.getTime()
не будет обрабатывать любые изменения в часовом поясе.
Знаете ли вы, что 'Date.getTime()' всегда отображается в GMT? –
ResultSet.getTime() или Date.getTime()? Я знаю, что Date.getTime() загружается в UTC. – user833970
@ user833970 Ну, как указал Джон Скит, ResultSet.getTime() действительно учитывает часовой пояс (согласно документам), если база данных не хранит информацию о часовом поясе. Я предполагаю, что ваша база данных хранит указанную информацию, потому что, очевидно, она не учитывала календарь в вашем примере:/ – Tim