Respostas:
java.sql.Timestamp
estende java.util.Date
. Você pode fazer:
String s = new SimpleDateFormat("MM/dd/yyyy").format(myTimestamp);
Ou para incluir também o tempo:
String s = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(myTimestamp);
Use String.format (ou java.util.Formatter ):
Timestamp timestamp = ...
String.format("%1$TD %1$TT", timestamp)
EDITAR:
consulte a documentação do Formatter para saber o que significa TD e TT: clique em java.util.Formatter
O primeiro 'T' significa:
't', 'T' date/time Prefix for date and time conversion characters.
e o caractere seguindo aquele 'T':
'T' Time formatted for the 24-hour clock as "%tH:%tM:%tS".
'D' Date formatted as "%tm/%td/%ty".
05/30/17 00:39:18
.
Para esta questão em particular, a sugestão padrão java.text.SimpleDateFormat
funciona, mas tem o infeliz efeito colateral de SimpleDateFormat
não ser thread-safe e pode ser a fonte de problemas particularmente desagradáveis, uma vez que corromperá sua saída em cenários multi-threaded, e você não obtenha quaisquer exceções!
Eu recomendo fortemente olhar para Joda para qualquer coisa assim. Por quê ? É uma biblioteca de data / hora muito mais rica e intuitiva para Java do que a biblioteca atual (e a base da nova biblioteca de data / hora Java padrão em ascensão, então você aprenderá um que logo se tornará padrão API).
Se você estiver usando MySQL e quiser que o próprio banco de dados execute a conversão, use isto:
Se você preferir formatar usando Java, use isto:
SimpleDateFormat dateFormat = new SimpleDateFormat("M/dd/yyyy");
dateFormat.format( new Date() );
Use um DateFormat
. Em um aplicativo internacionalizado, use o formato fornecido por getInstance
. Se você deseja controlar explicitamente o formato, crie um novo SimpleDateFormat
você mesmo.