M.....3 2018-06-04 18:04:31 +1
Korzystam z EclipseLink i mam następującą klasę:

`public class myClass {
` @Temporal(TemporalType.TIMESTAMP)
` private Date rentedSince;
`}

Problemem jest to, że dane wprowadzane przez formularz JSF są traktowane jakby były w formacie UTC, natomiast wywołanie w kodzie new Date() traktowane jest z prawidłową strefą czasową, UTC+2. Próbowałem ustawiać TimeZone.setDefault(TimeZone.getTimeZone("Europe/Warsaw")); ale mimo tego dane pochodzące od użytkownika są traktowane jako UTC. Tak więc gdy próbuję porównać wartość pola rentedSince z aktualnym czasem new Date() to powstają głupoty z powodu dwóch godzin różnicy.

Pytanie brzmi, co zrobić by czas w aplikacji był reprezentowany w jednej strefie czasowej, UTC+2 czyli Europe/Warsaw? Wszystkie rozwiązania jakie znalazłem są pod Hibernate.

#java #javaee #programowanie
M.....3 [OP] 2018-06-04 18:46:31 +1
@Eoghan: Rzeczywiście, JPA 2.2 obsługuje LocalDateTime. Zaktualizowałem kod, pozmieniałem wszystko, to się okazuje że JSF nie obsługuje api javy8... k---a
Eoghan 2018-06-04 18:10:46 +0
@Matt23: nie możesz używać Javy 8?
M.....3 [OP] 2018-06-04 18:12:09 +0
@Eoghan: Z tego co widzę to z LocalDateTime jest jeszcze więcej roboty, bo jpa tego nie obsługuje.
Eoghan 2018-06-04 18:14:36 +0
@Matt23: JPA 2.2 ma wsparcie dla nowego API czasu, hibernate ma to wsparcie jeszcze dłużej, podejrzewam, że eclipselink tak samo
M.....3 [OP] 2018-06-04 20:42:42 +0
Dobra, jakoś sobie poradziłem, ale zmarnowałem cały dzień.