¿Cómo conseguir el día del mes?

Estoy tratando de recuperar qué día del mes es.

Tal como hoy es el 29 de agosto de 2011.

Lo que me gustaría hacer es obtener el número de días como 29 o 30. Que día del mes que es.

¿Cómo iba a hacer esto?

Tendrás que obtener una instancia de Calendar y conseguir que sea el día del mes

Calendar cal = Calendar.getInstance(); int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); String dayOfMonthStr = String.valueOf(dayOfMonth); 

También puede obtener DAY_OF_WEEK, DAY_OF_YEAR, DAY_OF_WEEK_IN_MONTH, etc.

El siguiente método le ayudaría a encontrar el día de cualquier fecha especificada:

 public static int getDayOfMonth(Date aDate) { Calendar cal = Calendar.getInstance(); cal.setTime(aDate); return cal.get(Calendar.DAY_OF_MONTH); } 

Echa un vistazo a GregorianCalendar , algo así como:

 final Calendar now = GregorianCalendar.getInstance() final int dayNumber = now.get(Calendar.DAY_OF_MONTH); 

Usted puede empezar leyendo la documentación de la Fecha . Entonces te das cuenta de que los métodos de Date están todos obsoletos y luego a Calender .

 Calendar now = Calendar.getInstance(); System.out.println(now.get(Calendar.DAY_OF_MONTH)); 

Tl dr

 LocalDate.now( ZoneId.of( "America/Montreal" ) ).getDayOfMonth() 

Java.time

El enfoque moderno es la clase LocalDate para representar un valor de fecha solamente.

Una zona horaria es crucial para determinar la fecha actual. Para cualquier momento dado, la fecha varía alrededor del globo por la zona.

 ZoneId z = ZoneId.of( "America/Montreal" ); LocalDate ld = LocalDate.now( z ) ; int dayOfMonth = ld.getDayOfMonth(); 

También puede obtener el día de la semana.

 DayOfWeek dow = ld.getDayOfWeek(); 

Joda-Time

ACTUALIZACIÓN: El proyecto Joda-Time está ahora en modo de mantenimiento y recomienda la migración a las clases java.time.

Utilizar la biblioteca Joda-Time 2.5 en lugar de las clases java.util.Date y .Calendar, que son notoriamente problemáticas.

La zona horaria es crucial para determinar una fecha. Es mejor especificar la zona en lugar de depender implícitamente de la zona horaria predeterminada actual de la JVM que está siendo asignada.

 DateTimeZone zone = DateTimeZone.forID( "America/Montreal" ); DateTime now = DateTime.now( zone ).withTimeAtStartOfDay(); int dayOfMonth = now.getDayOfMonth(); 

O utilizar código similar con la clase LocalDate que no tiene ninguna porción de hora del día.

Actualización de Java 8

Java 8 introduce los siguientes paquetes para la manipulación de hora y fecha.

 java.time.*; java.time.format.*; java.time.chono.*; java.time.temporal.*; java.time.zone.*; 

Estos son más organizados e intuitivos.

Sólo necesitamos dos paquetes más importantes para la discusión.
Hay 3 clases de nivel superior: LocalDate , LocalTime , LocalDateTime para describir Date, Time y DateTime respectivamente. Aunque, se formatean correctamente en toString() , cada clase tiene método de formato que acepta DateTimeFormatter para formatear en forma personalizada.

DateTimeFormatter también se puede utilizar mostrar la fecha dada un día. Tiene pocos

 import java.time.*; import java.time.format.*; class DateTimeDemo{ public static void main(String...args){ LocalDateTime x = LocalDateTime.now(); System.out.println(x.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)));//Shows Day and Date. System.out.println(x.format(DateTimeFormatter.ofPattern("EE")));//Short Form System.out.println(x.format(DateTimeFormatter.ofPattern("EEEE")));//Long Form } } 

ofLocalizedTime acepta FormatStyle que es una enumeración en java.time.format

ofPattern acepta String con caracteres de patrón restringido de longitud restringida. Aquí están los caracteres que se pueden pasar al método toPattern .

Introduzca aquí la descripción de la imagen

Puede probar diferentes números de patrones para ver cómo será la salida.

Echa un vistazo a más información sobre Java 8 DateTime API aquí

 //This will get you the day of the month String.valueOf((Calendar.getInstance()).get(Calendar.DAY_OF_MONTH)) 
  • Delegar método de llamada en Java
  • Lo que se mata con el hilo de la interfaz de usuario de Android
  • ¿Dónde establecer todos los oyentes?
  • Recibiendo la respuesta del eco del HTTP POST de un archivo de PHP (enviar los POSTS funciona muy bien, es el recibir que no puedo imaginar)
  • Obtención de todos los fondos de pantalla del sistema
  • Error al construir un proyecto Android de Cordova
  • ¿Cómo almacena una colección de cadenas en SQLite en Android?
  • ListView: deshabilitar el clic / enfoque
  • obteniendo 505 de respuesta desde el servidor
  • Cómo hacer HorizontalScrollView RIGHT a LEFT Scroll android
  • Cómo leer / interceptar mensaje USSD que viene en el teléfono Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.