Vaše otázka je nejasná a nejednoznačná. Nejednoznačnost časového pásma nechám stranou.
Mám podezření, že nějak získáváte long
nebo možná String
hodnotu z databáze namísto Date
. V JDBC byste normálně chtěli použít vhodné metody k získání datových typů specifických pro DB. MySQL TIMESTAMP
datový typ lze získat pomocí ResultSet#getTimestamp()
což vám poskytne java.sql.Timestamp
což je zase podtřída java.util.Date
.
Stručně řečeno, mělo by fungovat následující:
Date date = resultSet.getTimestamp("columnname");
Chcete-li jej dále naformátovat ve formátu čitelném pro člověka, kdykoli jej budete prezentovat koncovému uživateli, použijte SimpleDateFormat
. Klikněte na odkaz, obsahuje přehled všech vzorů. Zde je příklad:
String dateString = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
Chcete-li to udělat obráceně, použijte příslušný SimpleDateFormat#parse()
a PreparedStatement#setTimestamp()
.