parse - Formateo de fecha de Java?
parse date java (4)
Quiero leer una fecha en el formato AAAA-MM-DD.
Pero si ingreso una fecha, por ejemplo 2008-1-1, quiero leerla como 2008-01-01.
Alguien puede ayudarme? Gracias por adelantado
La solución de Adeel está bien si necesita usar el manejo integrado de fecha / hora de Java, pero personalmente prefiero usar Joda Time . Cuando se trata de formatos, el principal beneficio de Joda Time es que el formateador es sin estado, por lo que puedes compartirlo entre hilos de forma segura. Código de muestra:
DateTimeFormatter parser = DateTimeFormat.forPattern("YYYY-M-D");
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-DD");
DateTime dt = parser.parseDateTime("2008-1-1");
String formatted = formatter.print(dt); // "2008-01-01"
O usa la mucho mejor lib de Joda Time .
DateTime dt = new DateTime();
System.out.println(dt.toString("yyyy-MM-dd"));
// The ISO standard format for date is ''yyyy-MM-dd''
DateTimeFormatter formatter = ISODateTimeFormat.date();
System.out.println(dt.toString(formatter));
System.out.println(formatter.print(dt));
La API de fecha y calendario es horrible.
import java.text.*;
public class Test
{
public static void main(String args[])
{
try
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD");
System.out.println(sdf.parse(args[0]).toString());
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Esto funciona bien, no importa si escribe como argumento "2008-1-1" o "2008-01-01".