tl; dr
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
A abordagem moderna usa as classes java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Observe como especificamos um Locale
tal como Locale.CANADA_FRENCH
para determinar a linguagem humana usada para traduzir o nome do dia.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
By the way, você pode estar interessado no padrão semana ISO 8601 esquema de numeração: yyyy-Www-d
.
2018-W01-2
A semana 1 tem a primeira quinta-feira do ano civil. A semana começa na segunda-feira. Um ano tem 52 ou 53 semanas. Os últimos / primeiros dias de um ano civil podem chegar ao ano seguinte / anterior, com base na semana.
O dígito único no final é dia da semana, 1 a 7 para segunda-feira a domingo.
Adicione a classe da biblioteca ThreeTen-Extra ao seu projeto para a YearWeek
classe.
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 do pacote 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 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 .
dd
como formato?