Java Alterar formato de data
Existem várias opções disponíveis para converter uma string de data em formato de data. Abaixo estão mencionadas maneiras pelas quais pode trazer os resultados desejados. Vamos entender a variedade de maneiras do bloco de código abaixo.
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");
}
}
Em Way1
, uma instância da classe SimpleDateFormat
é criada. Recebe um valor pattern
do formato em que a string de data é inserida. Portanto, desta forma, inserimos uma data no formato yyyy-MM-dd
. A instanciação também lança algumas exceções como NullPointerException
e IllegalArgumentException
se o parâmetro for nulo ou ilegal. Agora, com o objeto formatter
criado recentemente, inicializamos um método parse
. O método usa a string de data como um valor de entrada e retorna o tipo de dados Date
após a análise. Ele lança ParseException
quando a string de data e o formatador fornecidos não correspondem ou, internamente, a string de data não é analisada.
Em Way2
, novamente a classe SimpleDateFormat
é usada para criar um formato que deve entrar. Mas agora, um construtor sobrescrito de SimpleDateFormat
é chamado. O primeiro parâmetro é o format/pattern
da string Date
. Outra é Locale
que define uma região ou área geográfica especificada. Note:
Todos os locais não são permitidos no método. Agora, verifique o padrão dd/MMM/yyyy HH:mm: ss
que tinha um mês no formato mmm. O formato indica que a abreviação dos meses é aceitável no formato mmm. Além disso, pode levar horas, minutos e segundos na string de formato.
Em Way3
, o uso da classe DateTimeFormat
é feito para formatar e imprimir objetos de data-hora. O método ofPattern
é usado para preparar um formatador do padrão desejado. Agora o método estático da classe LocalDate
é chamado para analisar a data. O método é parse
que leva o texto para analisar e DateTimeFormatter
para especificar o formato do texto da data de entrada. O método retorna a instância LocalDate
e não é nulo. Ele lança DateTimeParseException
quando o texto não pode ser analisado. O formato também pode levar o nome do dia. A abreviatura EEE
denota o mesmo no formatador.
Em Way4
, diretamente o método parse
que é um método de fábrica estático da classe LocalDate
é chamado. Desta vez, nenhuma instância do formatador ou padrão é definido de forma alguma. Agora a função recebe a string de data de entrada no formato yyyy-MM-dd
. A string de data especificada sempre deve representar uma data válida e é convertida usando o formato DateTimeFormatter.ISO_LOCAL_DATE
. O método lança a exceção DateTimeParseException
quando o texto não pode ser analisado.
Abaixo está a saída do código para converter a string de data no formato 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