Generar una marca de fecha actual en Java
Pregunta
¿Cuál es la mejor manera de generar una marca de fecha actual en Java?
AAAA-MM-DD:hh-mm-ss
Solución
Usando el JDK estándar, querrás usar java.text.SimpleDateFormat
Date myDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
String myDateString = sdf.format(myDate);
Sin embargo, si tiene la opción de utilizar el paquete Apache Commons Lang, puede utilizar org.apache.commons.lang.time.FastDateFormat
Date myDate = new Date();
FastDateFormat fdf = FastDateFormat.getInstance("yyyy-MM-dd:HH-mm-ss");
String myDateString = fdf.format(myDate);
FastDateFormat tiene la ventaja de ser seguro para subprocesos, por lo que puede utilizar una única instancia en toda su aplicación.Es estrictamente para formatear fechas y no admite el análisis como lo hace SimpleDateFormat en el siguiente ejemplo:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");
Date yourDate = sdf.parse("2008-09-18:22-03-15");
Otros consejos
Date d = new Date();
String formatted = new SimpleDateFormat ("yyyy-MM-dd:HH-mm-ss").format (d);
System.out.println (formatted);
También hay
long timestamp = System.currentTimeMillis()
Que es que new Date()
(@John Millikin) utiliza internamente.Una vez que lo tengas, puedes formatearlo como quieras.
SimpleDateFormatter es lo que quieres.
final DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd:hh-mm-ss");
formatter.format(new Date());
El JavaDoc para formato de fecha simple proporciona información sobre cadenas de patrones de fecha y hora.