Pozwól mi zaproponować Ci to rozwiązanie. Więc w zarządzanym fasoli, zrób to
public String convertTime(long time){
Date date = new Date(time);
Format format = new SimpleDateFormat("yyyy MM dd HH:mm:ss");
return format.format(date);
}
więc na swojej stronie JSF, można to zrobić (zakładając foo
jest obiekt, który zawiera Twój time
)
<h:dataTable value="#{myBean.convertTime(myBean.foo.time)}" />
Jeśli masz wiele stron, które mają być Aby skorzystać z tej metody, możesz umieścić ją w pliku abstract class
i mieć zarządzany komponent bean rozszerzający tę abstract class
.
EDIT: Czas powrotu z TimeZone
niestety, myślę SimpleDateFormat
zawsze sformatować czas w czasie lokalnym, więc możemy użyć SimpleDateFormat
więcej. Tak aby wyświetlać czas w innej strefy czasowej, co możemy zrobić, to
public String convertTimeWithTimeZome(long time){
Calendar cal = Calendar.getInstance();
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
cal.setTimeInMillis(time);
return (cal.get(Calendar.YEAR) + " " + (cal.get(Calendar.MONTH) + 1) + " "
+ cal.get(Calendar.DAY_OF_MONTH) + " " + cal.get(Calendar.HOUR_OF_DAY) + ":"
+ cal.get(Calendar.MINUTE));
}
Lepszym rozwiązaniem jest wykorzystanie JodaTime
. Moim zdaniem ten interfejs API jest znacznie lepszy niż Kalendarz (lżejszy, szybszy i zapewnia większą funkcjonalność). Dodatkowo z January
jest 0
, który wymusza na programistce dodanie do wyniku 1
, a sam musisz sformatować czas. Używając JodaTime
, możesz to wszystko naprawić. Popraw mnie, jeśli się mylę, ale myślę, że JodaTime
jest wbudowany w JDK7
ja nic o tym wiedzieć Cassandra , więc tutaj jest tylko pęd w ciemności: Zastanawiam się, czy 'PreparedStatement # setTimestamp()' i 'ResultSet # getTimestamp()' nie działa dla ciebie? Zobacz także odpowiedź na podobne pytanie, które napisałem przedtem: http://stackoverflow.com/questions/6778558/how-can-i-set-the-global-default-date-format-in-java With a fullworthy Obiekt 'java.util.Date' można po prostu użyć standardowych konwerterów daty/czasu JSF, takich jak' 'po stronie widoku w zwykły sposób konwertowania między nim a czytelną dla człowieka reprezentacją napisów. –
BalusC
@BalusC: nie jest Cassandra jest jedną z tych baz danych "BigTable" lub "NoQuery', które korzystają z Facebooka lub Twittera. Słyszałem, że bardzo różnią się od zwykłego DB. @Raj, ponieważ 'PreparedStatement # setTimestamp() i ResultSet # getTimestamp()' mogą nie działać dla ciebie, umieszczam dla ciebie rozwiązanie wyższej warstwy. –