Existe alguma outra maneira além dessas duas?
Sim existe.
LocalDate.now(
ZoneId.of( "Pacific/Auckland" )
)
java.time
O Java 8 e posterior vem com o novo pacote java.time embutido. Veja o tutorial . Grande parte da funcionalidade java.time é portada para Java 6 e 7 no ThreeTen-Backport e adaptada ainda mais ao Android no ThreeTenABP .
Semelhante ao Joda-Time , o java.time oferece uma LocalDate
classe para representar um valor somente de data, sem hora do dia e sem fuso horário.
Observe que o fuso horário é crítico para determinar uma data específica. No início da meia-noite em Paris, por exemplo, a data ainda é "ontem" em Montreal.
LocalDate today = LocalDate.now( ZoneId.of( "America/Montreal" ) ) ;
Por padrão, java.time usa o padrão ISO 8601 na geração de uma representação de string de um valor de data ou data / hora. (Outra semelhança com Joda-Time.) Então, basta ligar toString()
para gerar texto como 2015-05-21
.
String output = today.toString() ;
Sobre java.time
A estrutura java.time é integrada ao Java 8 e posterior. Essas classes suplantar os velhos problemáticos legados aulas de data e hora, como java.util.Date
, Calendar
, e SimpleDateFormat
.
O projeto Joda-Time , agora em modo de manutenção , aconselha a migração para as classes java.time .
Para saber mais, consulte o Tutorial do Oracle . E procure Stack Overflow para muitos exemplos e explicações. A especificação é JSR 310 .
Onde obter as classes java.time?
- Java SE 8 , Java SE 9 e posterior
- Construídas em.
- Parte da API Java padrão com uma implementação em pacote configurável.
- O Java 9 adiciona alguns recursos e correções menores.
- Java SE 6 e Java SE 7
- Grande parte da funcionalidade java.time é portada para Java 6 e 7 no ThreeTen-Backport .
- Android
- Versões posteriores das implementações de pacote configurável do Android das classes java.time.
- Para anteriormente Android, o ThreeTenABP projeto adapta ThreeTen-Backport (mencionados acima). Consulte Como usar o ThreeTenABP… .
O projeto ThreeTen-Extra estende o java.time com classes adicionais. Este projeto é um campo de prova para possíveis adições futuras ao java.time. Você pode encontrar algumas classes úteis aqui, como Interval
, YearWeek
, YearQuarter
, e mais .