tl; dr
LocalDate.of( 2018 , Month.JANUARY , 23 )
.format( DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) )
java.time
El enfoque moderno utiliza las clases java.time.
LocalDate ld = LocalDate.of( 2018 , Month.JANUARY , 23 ) ;
Observe cómo especificamos un Locale
ejemplo Locale.CANADA_FRENCH
para determinar el lenguaje humano utilizado para traducir el nombre del día.
DateTimeFormatter f = DateTimeFormatter.ofPattern( “uuuu-MM-EEE” , Locale.US ) ;
String output = ld.format( f ) ;
ISO 8601
Por cierto, usted puede estar interesado en la norma de la semana ISO 8601 esquema de numeración: yyyy-Www-d
.
2018-W01-2
La semana 1 tiene el primer jueves del año calendario. La semana comienza un lunes. Un año tiene 52 o 53 semanas. Los últimos / primeros días de un año calendario pueden aterrizar en el año semanal siguiente / anterior.
El dígito único al final es el día de la semana, 1-7 de lunes a domingo.
Agregue la clase de biblioteca ThreeTen-Extra a su proyecto para la YearWeek
clase.
Sobre java.time
El marco java.time está integrado en Java 8 y versiones posteriores. Estas clases suplantar la vieja problemáticos heredados clases de fecha y hora como java.util.Date
, Calendar
, y SimpleDateFormat
.
El proyecto Joda-Time , ahora en modo de mantenimiento , aconseja la migración a las clases java.time .
Para obtener más información, consulte el Tutorial de Oracle . Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310 .
¿Dónde obtener las clases java.time?
- Java SE 8 , Java SE 9 y posterior
- Incorporado.
- Parte de la API Java estándar con una implementación integrada.
- Java 9 agrega algunas características menores y correcciones.
- Java SE 6 y Java SE 7
- Gran parte de la funcionalidad java.time se transfiere a Java 6 y 7 en ThreeTen-Backport .
- Androide
- Versiones posteriores de las implementaciones de paquetes de Android de las clases java.time.
- Para principios de Android, el ThreeTenABP proyecto se adapta ThreeTen-Backport (mencionado anteriormente). Ver Cómo utilizar ThreeTenABP ... .
El proyecto ThreeTen-Extra extiende java.time con clases adicionales. Este proyecto es un campo de pruebas para posibles adiciones futuras a java.time. Usted puede encontrar algunas clases útiles aquí, como Interval
, YearWeek
, YearQuarter
, y más .
dd
como formato?