Java – Usando o SimpleDateFormat

Acredito que varias pessoas já tiveram problemas com o objeto Date, ou ajustar uma String de data com formato americano por exemplo.

O SimpleDateFormat é uma Classe bem simples de ser utilizada e totalmente útil para esse assunto. Com o SimpleDateFormat você pode definir seus próprios padrões de data, por exemplo, dd/mm/aaaa, dd/mm/aaaa, aaaa-mm-dd, e assim por diante. Os padrões de letras são definidas na imagem abaixo (todos os outros caracteres de ‘A’ a ‘Z’ e de ‘a’ a ‘z’ são reservados):

Tabela SimpleDateFormat

Abaixo  vamos mostrar um exemplo bem simples da utilização dessa Classe.

Nele criamos um padrão Mês/Dia/Ano (de acordo com a tabela acima) e construímos o SimpleDateFormat(sdf) com esse padrão.Após isso criamos um Date através do sdf passando a data como uma String de acordo com o padrão. Na linha 16 formatamos um novo Objeto Date que tem a data atual. depois alteramos o padrão para Dia/Mês/Ano Hora:Minuto:Segundo e pegamos a String através de um new Date.

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MainClass {
  public static void main(String[] args) {
    String padrao = "MM/dd/yyyy";
    SimpleDateFormat sdf = new SimpleDateFormat(padrao);
    try {
      Date date = sdf.parse("12/30/2012");
      System.out.println(date);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    // formatando "MM/dd/yyyy"
    System.out.println(sdf.format(new Date()));

   // formatando "dd/MM/yyyy kk:mm:ss"
   padrao = "dd/MM/yyyy kk:mm:ss";
   sdf = new SimpleDateFormat(padrao);
   System.out.println(sdf.format(new Date()));
  }
}

A baixo seria a Saida:

Sun Dec 30 00:00:00 PST 2012
12/30/2012
30/12/2012 08:10:35
Anúncios

6 comentários sobre “Java – Usando o SimpleDateFormat

  1. Belo post, espero que em breve tenha um para a classe Calendar.

  2. Por exemplo, estou com uma dúvida em um projeto que estou fazendo, e até agora não resolvi. Eu passo uma data da classe Calendar, da seguinte forma: values.put(“dataInicio”, DateFormat.format(“yyyy-MM-dd”, dataInicio).toString());
    Se eu quero recuperar através de um método values. Eu não vou ter nenhum tipo de data nem calendar… Estou pensando sinceramente em fazer um sdf pra isso. Se cuida ai e abraço.

    • É dessa maneira você está adicionando uma String em sua lista, você pode usar o sdf para recuperar um Date já que você tem a mascara, ou já adicionar um Date na sua lista em vez de uma String…

  3. Não dá pra adicionar Date desta forma… no values.put() não tem nenhum tipo de data, apenas integer, string, boolean e por ai vai. Mas Date não tem nenhuma opção.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s