Formato data modifica Java
Sono disponibili varie opzioni per convertire una stringa di data in formato data. Di seguito sono citati i modi in cui può far emergere i risultati desiderati. Cerchiamo di capire la varietà di modi dal blocco di codice sottostante.
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class StringToDateFormat {
public static void main(String[] args) throws ParseException {
System.out.print("Way1: ");
SimpleDateFormat dt = new SimpleDateFormat("yyyyy-MM-dd");
System.out.print(dt.parse("2021-11-05") + "\n");
System.out.print("Way2: ");
SimpleDateFormat formatter = new SimpleDateFormat("dd/MMM/yyyy HH:mm:ss", Locale.ENGLISH);
System.out.print(formatter.parse("21/JAN/2021 21:35:56") + "\n");
System.out.print("Way3: ");
DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("EEE, d MMM yyyy", Locale.ENGLISH);
System.out.print(LocalDate.parse("Wed, 5 May 2021", formatter1) + "\n");
System.out.print("Way4: ");
System.out.print(LocalDate.parse("2021-05-31") + "\n");
}
}
In Way1
, viene creata un’istanza della classe SimpleDateFormat
. Prende un valore pattern
del formato in cui viene immessa la stringa Date. Quindi, in questo modo, abbiamo inserito una data nel formato yyyy-MM-dd
. L’istanza genera anche alcune eccezioni come NullPointerException
e IllegalArgumentException
se il parametro è nullo o illegale. Ora con l’oggetto formatter
creato di recente, inizializziamo un metodo parse
. Il metodo accetta la stringa della data come valore di input e restituisce il tipo di dati Date
dopo l’analisi. Genera ParseException
quando la stringa della data e il formattatore dati non corrispondono, o internamente la stringa della data non viene analizzata.
In Way2
, ancora la classe SimpleDateFormat
viene utilizzata per creare un formato che dovrebbe entrare. Ma ora viene chiamato un costruttore sovrascritto di SimpleDateFormat
. Il primo parametro è il format/pattern
della stringa Date
. Un altro è Locale
che definisce una regione geografica o un’area specifica. Note:
tutte le impostazioni locali non sono consentite nel metodo. Ora, controlla il modello dd/MMM/yyyy HH:mm: ss
che aveva un mese in un formato mmm. Il formato implica che la stenografia dei mesi sia accettabile nella forma mmm. Inoltre, possono essere necessarie ore, minuti e secondi nella stringa di formato.
In Way3
, l’uso della classe DateTimeFormat
è fatto per formattare e stampare oggetti data-ora. Il metodo ofPattern
viene utilizzato per preparare un formattatore del pattern desiderato. Ora viene chiamato il metodo statico della classe LocalDate
per analizzare la data. Il metodo è parse
che accetta il testo da analizzare e DateTimeFormatter
per specificare il formato del testo della data di input. Il metodo restituisce l’istanza LocalDate
e non è null. Genera DateTimeParseException
quando il testo non può essere analizzato. Il formato può anche prendere il nome del giorno. L’abbreviazione EEE
denota lo stesso nel formattatore.
In Way4
, viene chiamato direttamente il metodo parse
che è un metodo factory statico della classe LocalDate
. Questa volta nessuna istanza del formattatore o un modello viene definito in alcun modo. Ora la funzione accetta la stringa della data di input nella forma yyyy-MM-dd
. La stringa della data specificata deve sempre rappresentare una data valida e viene convertita utilizzando il formato DateTimeFormatter.ISO_LOCAL_DATE
. Il metodo genera l’eccezione DateTimeParseException
quando il testo non può essere analizzato.
Di seguito è riportato l’output del codice per convertire la stringa della data nel modulo Date
.
Way1: Fri Nov 05 00:00:00 IST 2021
Way2: Thu Jan 21 21:35:56 IST 2021
Way3: 2021-05-05
Way4: 2021-05-31
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn