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
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
`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
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ń.