Ho una variabile LocalDate chiamata date, quando la stampa viene visualizzata il 05-05-2008 Ho bisogno di convertirla per stamparla come 05 maggio, 1988. Come si fa?
Ho una variabile LocalDate chiamata date, quando la stampa viene visualizzata il 05-05-2008 Ho bisogno di convertirla per stamparla come 05 maggio, 1988. Come si fa?
Risposte:
SimpleDateFormat non funzionerà se inizia con LocalDate che è nuovo in Java 8. Da quello che posso vedere, dovrai usare DateTimeFormatter, http://docs.oracle.com/javase/8/docs/api/java/ time / format / DateTimeFormatter.html .
LocalDate localDate = LocalDate.now();//For reference
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd LLLL yyyy");
String formattedString = localDate.format(formatter);
Dovrebbe essere stampato il 05 maggio 1988. Per ottenere il periodo successivo al giorno e prima del mese, potrebbe essere necessario utilizzare "dd'.LLLL yyyy"
Con l'aiuto dei post di ProgrammersBlock ho pensato a questo. Le mie esigenze erano leggermente diverse. Avevo bisogno di prendere una stringa e restituirla come oggetto LocalDate. Mi è stato consegnato il codice che utilizzava il calendario e SimpleDateFormat più vecchi. Volevo renderlo un po 'più attuale. Questo è quello che mi è venuto in mente.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
void ExampleFormatDate() {
LocalDate formattedDate = null; //Declare LocalDate variable to receive the formatted date.
DateTimeFormatter dateTimeFormatter; //Declare date formatter
String rawDate = "2000-01-01"; //Test string that holds a date to format and parse.
dateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE;
//formattedDate.parse(String string) wraps the String.format(String string, DateTimeFormatter format) method.
//First, the rawDate string is formatted according to DateTimeFormatter. Second, that formatted string is parsed into
//the LocalDate formattedDate object.
formattedDate = formattedDate.parse(String.format(rawDate, dateTimeFormatter));
}
Speriamo che questo possa aiutare qualcuno, se qualcuno vede un modo migliore di fare questo compito, per favore aggiungi il tuo contributo.
LocalDate.parse(rawDate)! String.formatviene utilizzato in una forma totalmente errata qui, in realtà solo restituendo la prima stringa; il DateTimeFormatternon viene utilizzato affatto; parseè un staticmetodo di LocalDate; nonformattedDate è una data formattata, nemmeno un (come richiesto in questione)String
C'è un modo integrato per formattare LocalDate per joda lib
import org.joda.time.LocalDate;
LocalDate localDate = LocalDate.now();
String dateFormat = "MM/dd/yyyy";
localDate.toString(dateFormat);
Nel caso in cui non lo possiedi già, aggiungilo a build.gradle:
implementation 'joda-time:joda-time:2.9.5'
Buona programmazione! :)
Un modo carino per farlo è usare SimpleDateFormatTi mostrerò come:
SimpleDateFormat sdf = new SimpleDateFormat("d MMMM YYYY");
Date d = new Date();
sdf.format(d);
Vedo che hai la data in una variabile:
sdf.format(variable_name);
Saluti.
LocalDateun'istanza in un formato specifico. Come potrebbe SimpleDateFormataiutarlo qui?
Strings.