"Lembrei-me que queria falar um pouco sobre como trabalhar com datas."

"Você já me disse que Java tem a classe Date, e posso usar essa classe para trabalhar com datas."

"Hmm. Bem, a classe Date está desatualizada há algum tempo."

"Agora é recomendado usar a classe Calendar, que tem um método getTime() que retorna a data atual."

"Este é um objeto Calendário geralmente criado:"

Criar um objeto Calendário
Calendar cal = Calendar.getInstance();

"Quando você chama esse método, o calendário correto é criado com base nas configurações do seu computador."

"O calendário 'correto'? Isso significa que existem vários?"

"Sim. Bem, seria mais correto dizer 'relevante'. O fato é que a Terra não tem um, mas muitos calendários. Quase todos eles estão associados a alguma religião ou país."

"O ano pode ser diferente dependendo do país em que você está."

"Aqui estão exemplos dos calendários mais comuns."

Aula de calendário Nome do calendário
Calendário gregoriano calendário gregoriano cristão
calendário budista calendário budista
Calendário Imperial Japonês calendário imperial japonês

"Há também o calendário chinês, o calendário islâmico e muitos mais."

"Eu vejo."

"Para obter a data atual, você precisa escrever um código como este:"

Obter a hora atual
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

"A classe Calendar tem muitos métodos que permitem que você obtenha rapidamente qualquer informação sobre uma data e hora."

Código Comentários
Calendar calendar = Calendar.getInstance();

int era = calendar.get(Calendar.ERA);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
era 
ano 
mês 
dia do mês

dia da semana (Seg, Ter, Qua, …)
hora 
minuto 
segundo

"Às vezes, você realmente só precisa obter uma parte das informações disponíveis. Por exemplo, o ano atual ou o dia da semana."

"Mas às vezes você simplesmente precisa exibir a data no formato correto."

"Por exemplo, no arquivo de log ou em outro lugar."

"Ou fazer um formato que o usuário possa personalizar. O que você faz então?"

"Também existem classes especiais para isso. A classe SimpleDateFormat é perfeitamente adequada para a tarefa que você descreveu:"

Como exibir uma data no formato desejado
Calendar calendar = Calendar.getInstance();

DateFormat formatter = new SimpleDateFormat("MM-DD-YY");

String message = formatter.format(calendar.getTime());

"Ah. Eu me lembro. Você já me explicou algumas coisas sobre SimpleDateFormat , mas sinceramente não me lembro de muita coisa."

"É tudo muito simples. Você cria um objeto SimpleDateFormat e passa para ele o padrão de data que deseja obter. Em seguida, você chama o método format e ele fornece a data passada no formulário desejado."

"Parece interessante. Eu gostaria de mais detalhes."

"Aqui está. Os detalhes. Aqui estão algumas das letras que podem ser usadas no padrão de data:"

Carta Descrição
G Substituído pela era (AD ou BC)
y Substituído pelo ano
M Substituído pelo mês
c Número de semanas no ano
C Número da semana no mês
D Número de dias no ano
d Dia do mês
F Dia da semana no mês
E Dia da semana
a AM/PM (antes ou depois do meio-dia)
H Hora no formato de 24 horas (0-23)
k Hora no formato de 24 horas (1-24)
k Hora no formato de 12 horas (0-11)
h Hora no formato de 12 horas (1-12)
m Minutos
s Segundos
S Milissegundos
z Fuso horário, formatado assim: Pacific Standard Time, PST
Z Fuso horário, formatado assim: -0800/td>

"Legal! Isso é tudo que você precisa."

"Ainda existem algumas nuances relacionadas à repetição dessas letras."

"Se você escrever YY, obterá os dois últimos dígitos do ano. Se escrever YYYY, obterá todos os quatro dígitos do ano."

"Também há alguma complexidade com os meses. MM é o número do mês. MMM é uma abreviação de três letras do mês, ou seja, janeiro, fevereiro, março, abril, maio, etc. MMMM significa o nome completo do mês ."

"Você também pode exibir o dia inteiro da semana (usando EEEE) ou apenas as duas primeiras letras (usando EE)."

"Obrigado, Rishi. Esta classe SimpleDateFormat é realmente útil. Agora eu sei."

"Divirta-se usando! E boa sorte!"