risposta moderna: Usa LocalDate
dal java.time
, il moderno data e l'ora API Java, e il suo toString
metodo:
LocalDate date = LocalDate.of(2012, Month.DECEMBER, 1); // get from somewhere
String formattedDate = date.toString();
System.out.println(formattedDate);
Questo stampa
2012-12-01
Una data (se stiamo parlando java.util.Date
o java.time.LocalDate
) non ha un formato in esso. Tutto ciò che si ottiene è un metodo toString
che produce un certo formato e non è possibile modificare il metodo toString
. Fortunatamente, LocalDate.toString
produce esattamente il formato che hai richiesto.
La classe Date
è obsoleta e la classe SimpleDateFormat
che si è tentato di utilizzare è notoriamente problematica.Ti raccomando di dimenticarti di quelle lezioni e usa invece java.time
. La moderna API è molto più bella con cui lavorare.
Eccetto: succede che si ottiene un Date
da un'API legacy che non è possibile modificare o non si desidera modificare solo ora. La cosa migliore che puoi fare con esso è convertirlo in java.time.Instant
e fare eventuali ulteriori operazioni da lì:
Date oldfashoinedDate = // get from somewhere
LocalDate date = oldfashoinedDate.toInstant()
.atZone(ZoneId.of("Asia/Beirut"))
.toLocalDate();
Si prega di sostituire il fuso orario desiderato se non è successo di essere in Asia/Beirut. Quindi procedere come sopra.
Link:Oracle tutorial: Date Time, che spiega come utilizzare java.time
.
fonte
2018-01-22 11:09:31
5 tag data, ma non pensavi che la lingua che stai usando fosse abbastanza importante da menzionare? – Oded
qual è il significato in questo metodo 'public Date ConvertDate (Date date)'? – vels4j
@ vels4j ha restituito la data con il formato di aaaa-MM-gg –