SimpleDateFormat é uma classe para resolver nosso problema de formato de hora.
SimpleDateFormat é uma classe concreta para formatar e analisar datas de maneira dependente do local. Permite formatação (data->texto), análise (texto->data) e normalização. SimpleDateFormat permite a seleção de qualquer padrão de formato de data e hora definido pelo usuário.
Padrões de data e hora Os formatos de data e hora são especificados por sequências de padrões de data e hora. Em cadeias de caracteres de padrão de data e hora, as letras sem aspas de 'A' a 'Z' e de 'a' a 'z' são interpretadas como letras de padrão e usadas para representar elementos de cadeia de caracteres de data ou hora. O texto pode ser colocado entre aspas simples (') para evitar interpretação. "''" representa uma aspa simples. Todos os outros caracteres não são interpretados; eles são simplesmente copiados para a string de saída durante a formatação ou comparados com a string de entrada durante a análise.
As seguintes letras padrão são definidas (todos os outros caracteres 'A' a 'Z' e 'a' a 'z' são reservados):
exemplo de representação de elemento de data ou hora de letra
Identificador da Era G Texto AD
Ano e Ano 1996;
M mês do ano Mês Julho 07;
w Número de semanas no ano Número 27
W Número de semanas no mês Número 2
D Número de dias no ano Número 189
d Número de dias no mês Número 10
F Semana do mês Número 2
E Dia da semana Texto Terça;
a Am/pm Marcador Texto PM
H Hora do dia (0-23) Número 0
k Hora do dia (1-24) Número 24
Número de horas em K am/pm (0-11) Número 0
h Hora em am/pm (1-12) Número 12
m Número de minutos em uma hora Número 30
s Segundos em minutos Número 55
S Número de milissegundos Número 978
z Fuso horário Fuso horário geral Horário padrão do Pacífico;
Fuso horário Z RFC 822 fuso horário -0800
O exemplo a seguir mostra como interpretar padrões de data e hora na localidade dos EUA. A data e hora fornecidas são 2001-07-04 12:08:56 hora local no fuso horário do Pacífico dos Estados Unidos
Resultados do padrão de data e hora
"aaaa.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD às 12:08:56 PDT
"EEE, MMM d, '' yy" Quarta, 4 de julho de 2001
"h:mm a" 12h08
"hh 'o''clock' a, zzzz" 12 horas, horário de verão do Pacífico
"K: mm a, z" 13h08, PDT
"aaaa.MMMMM.dd GGG hh:mm aaa" 02001.July.04 DC 12:08 PM
"EEE, d MMM aaaa HH:mm:ss Z" Quarta, 4 de julho de 2001 12:08:56 -0700
"aaMMddHHmmssZ" 010704120856-0700
"aaaa-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700
Exemplos práticos de aplicação de SimpleDateFormat em programação:
(1) Formatação (Data->Texto)
Geralmente, a data e a hora comumente usadas em chinês são: 20070719 20:29:30
Formatador SimpleDateFormat = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
System.out.println("Data para String "+formater.format(nova Data()));
Formas comuns semelhantes incluem yyMMdd hh:mm:ss yyyy-MM-dd hh:mm:ss dd-MM-yyyy hh:mm:ss
Mas vale ressaltar que este formato (19JUL07) e suas formas similares possuem um pequeno truque 19JUL07
Formatador SimpleDateFormat = new SimpleDateFormat("ddMMMyy",,new Locale("US"))
System.out.println("Data para String "+formater.format(new Date()).toUpperCase());
Por estar em inglês, deve-se utilizar o parâmetro do objeto Locale, caso contrário será utilizado o Locale local padrão.
(2) Análise (Texto->Data)
De modo geral, você pode usar qualquer forma de modo de data e hora e parâmetros de texto que desejar para obter a hora no formato desejado. Por exemplo, 2007-7-19 retornará um objeto de hora do tipo java.util.Date e as horas. , minutos e segundos serão preenchidos com 0s.
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("EUA"));
tentar...{
System.out.println("String até a data "+formater.parse("2007sep01"));
} catch (ParseException e) ...{
e.printStackTrace();
}
Em particular,
formater = new SimpleDateFormat("yyyyMMMdd",new Locale("EUA"));
tentar...{
System.out.println("String até a data "+formater.parse("2007sep01"));
} catch (ParseException e) ...{
e.printStackTrace();
}
Ele também retorna um objeto de data do tipo java.util.Date, com horas, minutos e segundos preenchidos com 0s.
(3) Texto -> Carimbo de data e hora, Data -> Carimbo de data e hora
Carimbo de data e hora t;
Formato SimpleDateFormat = new SimpleDateFormat("aaaa-MM-dd hh:mm:ss");
tentar...{
t = novo carimbo de data/hora(format.parse("2007-07-19 00:00:00").getTime());
} catch (ParseException e) ...{
e.printStackTrace();
}
Carimbo de data e hora t;
Formato SimpleDateFormat = new SimpleDateFormat("aaaa-MM-dd hh:mm:ss");
t = novo carimbo de data/hora (nova data().getTime