Formato data modifica Java

Rashmi Patidar 12 ottobre 2023
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 Patidar avatar Rashmi Patidar avatar

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