Cómo obtener la localización del día en semana

I couldnt find a symbol for that in Formato de fecha simple

How can I get the current day's localized name?

For example: Monday: 1. day of week ; Tuesday: 2.day, wednesday:3.day .....

I want to get Presentation Number "1" instead of Monday ...

preguntado el 05 de mayo de 13 a las 18:05

Para su información, las problemáticas clases antiguas de fecha y hora como java.util.Date, java.util.Calendar y java.text.SimpleDateFormat ahora son un legado, reemplazado por el java.tiempo clases. La mayoría de java.tiempo la funcionalidad está respaldada a Java 6 y Java 7 en el ThreeTen-Backport proyecto. Más adaptado para Android anterior (<26) en TresDiezABP. Vea Cómo usar ThreeTenABP…. -

2 Respuestas

Según otras preguntas, no necesitas SimpleDateFormat to get the numeric day of the week - that is provided by Calendar directly via the DÍA DE LA SEMANA field (which goes from 1 to 7 where 1 is SUNDAY and 7 is SATURDAY):

Calendar today = Calendar.getInstance();
int dayOfWeek = today.get(Calendar.DAY_OF_WEEK);
// Day of Week is a number between 1 and 7 where 1 is Sunday.
int dayOfWeekMondayFirst = (dayOfWeek + 5) % 7 + 1;

contestado el 23 de mayo de 17 a las 12:05

I want to get number "1" instead of monday for example - metmet06

@metemet06 - I've updated my answer to give the numeric day of week, rather than the textual. Note that the default is Sunday as 1, rather than Monday. I've included the translation to Monday=1 as well. - ianhanniballake

Thanks, it really helped. I was just looking in SimpleDateFormat - metmet06

Para su información, las problemáticas clases antiguas de fecha y hora como java.util.Date, java.util.Calendar y java.text.SimpleDateFormat ahora son un legado, reemplazado por el java.tiempo clases. La mayoría de java.tiempo la funcionalidad está respaldada a Java 6 y Java 7 en el ThreeTen-Backport proyecto. Más adaptado para Android anterior (<26) en TresDiezABP. Vea Cómo usar ThreeTenABP…. - Albahaca bourque

tl; dr

For the number 1-7, meaning Monday-Sunday, for today:

LocalDate.now().getDayOfWeek().getValue() 

For the localized name of the day of the week:

LocalDate                          // Represent a date-only, without time-of-day and without time zone.
.now(                              // Get today’s current date as seen in the wall-clock time used by the people of a particular region (a time zone).
    ZoneId.of( "Africa/Tunis" )    // Specify time zone.
)                                  // Returns a `LocalDate`.
.getDayOfWeek()                    // Returns one of seven `DayOfWeek` enum objects.
.getDisplayName(                   // Localize the name of the day-of-week.
     TextStyle.FULL ,              // How long or abbreviated should the localized string be.
     Locale.UK                     // Specify a `Locale` to determine the human language and cultural norms to use in localizing.
)                                  // Returns a string.

Lunes

java.tiempo

El enfoque moderno utiliza el java.tiempo classes that long ago supplanted the terrible legacy date-time classes such as SimpleDateFormat.

To get the day-of-week today, we need the date.

LocalDate

Los programas LocalDate La clase representa un valor de solo fecha sin hora del día y sin huso horario or desplazamiento-de-UTC.

Una zona horaria es crucial para determinar una fecha. Para un momento dado, la fecha varía en todo el mundo según la zona. Por ejemplo, unos minutos después de la medianoche en París Francia es un nuevo día mientras sigue siendo "ayer" en Montreal Quebec.

Si no se especifica ninguna zona horaria, la JVM aplica implícitamente su zona horaria predeterminada actual. Ese defecto puede cambiar en cualquier momento durante el tiempo de ejecución (!), por lo que sus resultados pueden variar. Es mejor especificar su zona horaria deseada / esperada explícitamente como argumento.

Especifique un nombre adecuado de la zona horaria en el formato de continent/region, Tales como America/Montreal, Africa/Casablancao Pacific/Auckland. Nunca use la abreviatura de 2-4 letras como EST or IST ya que son no zonas horarias verdaderas, no estandarizadas y ni siquiera únicas (!).

ZoneId z = ZoneId.of( "America/Montreal" ) ;  
LocalDate today = LocalDate.now( z ) ;

Si desea utilizar la zona horaria predeterminada actual de la JVM, solicítela y páselo como argumento. Si se omite, el valor predeterminado actual de la JVM se aplica implícitamente. Es mejor ser explícito, ya que el valor predeterminado se puede cambiar en cualquier momento. durante el tiempo de ejecución por cualquier código en cualquier hilo de cualquier aplicación dentro de la JVM.

ZoneId z = ZoneId.systemDefault() ;  // Get JVM’s current default time zone.

DayOfWeek

Los programas DayOfWeek enum pre-defines a set of seven objects, one for each day of the week.

Pregunta la LocalDate objeto por su DayOfWeek.

DayOfWeek dow = ld.getDayOfWeek() ;

Pregunta la DayOfWeek object to automatically localize its name. The DayOfWeek::getDisplayName method translates the name of the day into any human language specified by a Locale como Locale.US or Locale.CANADA_FRENCH.

String output = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ); 

los lunes

Or, in US English.

String output = dow.getDisplayName( TextStyle.FULL , Locale.US ); 

Lunes

To get the number of the day-of-week, where Monday-Sunday is 1-7 per the ISO 8601 standard, ask the DayOfWeek enum object for its value.

int dowNumber = dow.getValue() ;  // 1-7 for Monday-Sunday.

To get the number 1-7 as part of a larger formatting pattern use e or c como se indica en el DateTimeFormatter clase.


Sobre java.tiempo

Los programas java.tiempo framework está integrado en Java 8 y versiones posteriores. Estas clases suplantan al viejo problemático legado clases de fecha y hora como java.util.Date, CalendarY SimpleDateFormat.

Los programas Joda-Tiempo proyecto, ahora en modo de mantenimiento, aconseja la migración a la java.tiempo clases.

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.

Puedes intercambiar java.tiempo objetos directamente con su base de datos. Usar una Controlador JDBC quejarse con JDBC 4.2 o después. Sin necesidad de cuerdas, sin necesidad de java.sql.* clases.

¿Dónde obtener las clases java.time?

Los programas ThreeTen-Extra El proyecto extiende java.time con clases adicionales. Este proyecto es un campo de pruebas para posibles adiciones futuras a java.time. Puede encontrar algunas clases útiles aquí, como Interval, YearWeek, YearQuarter y más, .

Respondido el 11 de diciembre de 18 a las 03:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.