Estoy teniendo problemas con la visualización de la fecha, en un doble dígito formato. Quiero que sea para que cuando el día o el mes es de un solo dígito ejemplo: 4 podría mostrar 04. Estoy teniendo problemas para pensar con la lógica de que, si alguien me puede ayudar estaría muy agradecido.

Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int day = c.get(Calendar.DAY_OF_MONTH);
        int month = c.get(Calendar.MONTH);

        if (month % 10 == 0) {

            Place = 0 + month;
        }
        String Dates = year + "-" + Place + "-" + day;
        Date.setText((Dates));
  • Tal vez Lugar = «0» + mes iba a funcionar como se almacena entonces como una Cadena?
  • FYI, la problemática de edad de fecha y hora de las clases, tales como java.util.Date, java.util.Calendar, y java.text.SimpleDateFormat ahora están legado, suplantado por el java.tiempo clases. Mucho de java.el tiempo es la funcionalidad de back-portado a Java 6 & Java 7 en el ThreeTen-Backport proyecto. Adaptado para versiones anteriores de Android en el ThreeTenABP proyecto. Consulte Cómo utilizar ThreeTenABP….

11 Comentarios

  1. 45
    DecimalFormat mFormat= new DecimalFormat("00");
    mFormat.format(Double.valueOf(year));

    en su caso:

     mFormat.setRoundingMode(RoundingMode.DOWN);
     String Dates =  mFormat.format(Double.valueOf(year)) + "-" +  mFormat.format(Double.valueOf(Place)) + "-" +  mFormat.format(Double.valueOf(day));
    • Este código es excelente, pero por alguna razón se procediese a la muestra de mi código como 3/18 en lugar de 4/18. Yo no entiendo por qué
    • trate de mFormat.setRoundingMode(RoundingMode.ABAJO); ver editado respuesta.
    • FYI, la problemática de edad de fecha y hora de las clases, tales como java.util.Date, java.util.Calendar, y java.text.SimpleDateFormat ahora están legado, suplantado por el de java.tiempo clases. Gran parte de la java.tiempo es la funcionalidad de back-portado a Java 6 & Java 7 en el ThreeTen-Backport proyecto. Adaptado para versiones anteriores de Android en el ThreeTenABP proyecto. Consulte Cómo utilizar ThreeTenABP….
  2. 15

    Por favor utilice SimpleDateFormat

    SimpleDateFormat sd1 = new SimpleDateFormat("dd-MMM-yyyy");
    System.out.println("Date : " + sd1.format(new Date(c.getTimeInMillis()));

    Salida

    Date : 18-Apr-2012
    • Esta es la respuesta correcta.
    • No, no es correcto. La Pregunta le pide explícitamente para el mes como un doble-dígitos de número no es un nombre de mes.
    • a continuación, puede utilizar dd-MM-aaaa en lugar de dd-MMM-aaaa
    • Sugiero modificar su Respuesta a proporcionar una solución pertinente en lugar de publicar un Comentario. A continuación, de nuevo, tal vez no debería. Su irrelevante Respuesta tiene 13 votos y un complemento de mi propio lugar-en Respuesta a una baja de votar.
    • Me acaba de publicar un comentario. este no es mi respuesta
  3. 10
    Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int day = c.get(Calendar.DAY_OF_MONTH);
    int month = c.get(Calendar.MONTH)+1;
    
    String Dates = year + "-" +(month<10?("0"+month):(month)) + "-" + day;
    Date.setText((Dates));
    • FYI, el moderno java.tiempo clases de hacer esto mucho más fácil: LocalDate.now().toString() -> 2018-01-27
  4. 8
    if (dayOfMonth < 10) {
        NumberFormat f = new DecimalFormat("00");
        Sting date = String.valueOf(f.format(dayOfMonth));
    }
    • trabajó para mí.. bueno la solución.. +1
  5. 4

    tl;dr

    LocalDate.now()
             .toString()

    2016-01-07

    Mejor especificar siempre el deseado/tiempo de espera de la zona de forma explícita.

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

    Evitar antiguo de la fecha y la hora de clases

    El java.util.Calendario de la clase que está utilizando ahora es legado. Evitar esta clase, junto con java.util.Fecha y tal. Estos han demostrado ser mal diseñados, confuso y molesto.

    java.tiempo

    La fecha vieja clases de tiempo han sido suplantados por la java.tiempo marco de trabajo basado en Java 8 y versiones posteriores. Gran parte de la funcionalidad ha sido nuevamente trasladado a Java 6 & 7 en el ThreeTen-Backport proyecto, y más adaptado a Android en ThreeTenABP.

    Estos modernos clases puede lograr su objetivo en una sola línea de código, como se ve a continuación.

    De fecha y hora funciones de formato

    Tanto en el viejo anticuado de fecha y hora así como clases de java.el tiempo de clases ofrecen características de formato. No hay necesidad de escribir su propio código de formato.

    Zona Horaria

    De la zona horaria es crucial para determinar la fecha. La fecha varía en todo el mundo por el tiempo de la zona como un nuevo día amanece más temprano en el oriente. Este problema fue ignorado en la Pregunta, y otras Respuestas. Si se omite, la JVM actual de la zona horaria predeterminada se aplica implícitamente. Mejor para especificar explícitamente su deseado/tiempo de espera de la zona.

    LocalDate

    Para una fecha valor solo sin la hora del día y sin tiempo de la zona, el uso de la LocalDate. Mientras que ninguna zona horaria se almacena dentro de la LocalDate, una zona de tiempo determina «hoy».

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

    ISO 8601

    Deseado formato AAAA-MM-DD con doble dígitos sucede a cumplir con la ISO 8601 estándar de la definición sensata de los formatos textuales representaciones de fecha de tiempo de los valores. Este estándar se utiliza por defecto en java.clases de tiempo para analizar/generación de cadenas.

    String output = today.toString();

    Eso es todo, 3 líneas de código. Incluso se puede combinar con ellos.

    String output = LocalDate.now( ZoneId.of( "America/Montreal" ) ).toString();

    Sobre java.tiempo

    La java.tiempo marco está construido en Java 8 y versiones posteriores. Estas clases suplantar la problemática de edad legado fecha y hora de las clases, tales como java.util.Fecha, Calendario, & SimpleDateFormat.

    La Joda-Time proyecto, ahora en el modo de mantenimiento, asesora de la migración a la java.tiempo clases.

    Para obtener más información, consulte la Oracle Tutorial. Y la búsqueda de Desbordamiento de Pila, hay muchos ejemplos y explicaciones. La especificación es JSR 310.

    Puede intercambiar java.tiempo objetos directamente con la base de datos. El uso de un Controlador JDBC compatible con JDBC 4.2 o más tarde. No hay necesidad para las cadenas, sin necesidad de java.sql.* clases.

    Dónde obtener el java.clases de tiempo?

    • Java SE 8, Java SE 9, y más tarde
      • Incorporado.
      • Parte de la norma API de Java con un paquete de implementación.
      • Java 9 añade algunas características menores y correcciones.
    • Java SE 6 y Java SE 7
      • Mucho de java.el tiempo es la funcionalidad de back-portado a Java 6 & 7 en ThreeTen-Backport.
    • Android
      • Versiones posteriores de Android paquete de implementaciones de java.clases de tiempo.
      • Para versiones anteriores de Android, la ThreeTenABP proyecto se adapta ThreeTen-Backport (mencionado anteriormente). Ver Cómo utilizar ThreeTenABP….

    La ThreeTen-Extra proyecto se extiende java.tiempo con clases adicionales. Este proyecto es un terreno de prueba para posibles futuras incorporaciones a java.tiempo. Usted puede encontrar algunos de clases útiles aquí como Intervalo, YearWeek, YearQuarter, y más.

    • Queridos Abajo-Votante: por Favor, deje una crítica a lo largo de con su voto.
    • Ok, yo estoy esperando el de stackoverflow tiempo para darle un upvote 🙂
  6. 2
    if ((month+1)<10){
        place = "0"+(String) (month+1)
    }

    hacer el mismo día y usted es bueno ir.

    +1 en el mes, ya que comienza con 0.

  7. 2

    Uso SimpleDateFormat clase.. Hay un montón de maneras de hacerlo..

    algo como esto..

     SimpleDateFormat sdfSource = new SimpleDateFormat("dd/MM/yy"); //you can add any format..
    
    
          Date date = sdfSource.parse(strDate);
    • Esto es mucho más conveniente que la aceptó responder
    • En realidad, esta Respuesta utiliza confuso problemática de edad fecha de tiempo de clases que son ahora suplantado por el java.tiempo clases. Para versiones anteriores de Android, consulte el ThreeTen-Backport y ThreeTenABP de los proyectos.
  8. 2

    Puramente usando el Java 8 de la biblioteca de Tiempo:

    String date = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
    • En realidad, la Pregunta es para toda la fecha, año-mes-día.
    • Modificado mi respuesta a cuenta de que. Aunque me acabo de dar cuenta que este es etiquetado como android y mi respuesta era para el estándar de jdk. No sé si será diferente.
    • Más tarde, Android tiene una aplicación de java.tiempo. Para versiones anteriores de Android, el uso de la ThreeTen-Backport y ThreeTenABP de los proyectos.
    • No hay necesidad de especificar que el formato de patrón. Que formato año-mes-día es el estándar ISO 8601 formato que se utiliza por defecto en el toString como se explicó en el mi Respuesta publicado hace un par de años.
    • Yo no ver tu respuesta y por tanto no soy «simplemente replicar» su respuesta. Yo no tengo ningún deseo o la necesidad de hacerlo. Esta es una sintaxis alternativa sin el uso de las zonas horarias que usted utiliza en su respuesta. Yo voy a dejar mi respuesta independientemente.
  9. 0

    Joda Tiempo

    El uso de la Joda-El Tiempo biblioteca, específicamente el org.joda.tiempo.DateTime clase.

    DateTime datetime = new DateTime(new Date());
    String month = datetime.toString("MM");

    resultado será 2 dígitos

    Si usted necesita, por ejemplo, un año en el que usted puede utilizar:

    String year = datetime.toString("YYYY");

    resultado será de 4 dígitos del año.

    • No hay DateTime clase en Java 8. Y no se mucho de Java 8 en Android.
    • Tks, he cambiado mi texto para org.joda.tiempo.DateTime.
    • ¿Cuál es el problema con esta respuesta? Yo ya uso esta en diferentes contexto y nunca tuve un problema.
    • Nada de malo ahora. Me imagino que el voto fue antes de que usted identificó la Joda de la biblioteca de Tiempo como la fuente de sus clases.
    • FYI, el Joda-Time proyecto se encuentra ahora en modo de mantenimiento. El equipo asesora a la migración a java.clases de tiempo. Mucho de java.el tiempo es la funcionalidad de back-portado a Java 6 & 7 en el ThreeTen-Backport del proyecto, y se adapta a Android en el ThreeTenABP proyecto.
    • Eso no era justo. Esta respuesta responde exactamente el propósito de la pregunta. pero su bien!

  10. 0

    puede utilizar la Cadena.método format ().

    ejemplo :

    String.format("%02d", month);

    por lo que habría que añadir «0» delante de mes, si el elegido mes menos de 10.

Dejar respuesta

Please enter your comment!
Please enter your name here