Basta ya de indagar por todo internet porque has llegado al lugar correcto, tenemos la respuesta que deseas sin problema.
Solución:
La mejor forma de conversión de fechas es usando el tiempo en milisegundos, UTC. Tanto el objeto JS Date como la clase java.util.Date admiten la conversión a milisegundos (getTime()
) e instanciando desde milisegundos (usando constructor).
Puedes crear un java.util.Date
objeto del valor ‘tiempo desde época’ del JS Date
javascript
var d = new Date().getTime();
Java
// get value from client (ajax, form, etc), and construct in Date object
long valueFromClient = ...
Date date = new Date(valueFromClient);
String formatted = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
Si la gente como yo se ve obligada a analizar una fecha con formato JS string (como resultado de (new Date()).toString()
en JavaScript), aquí está la especificación SimpleDateFormat que utilicé:
DateFormat jsfmt = new SimpleDateFormat("EE MMM d y H:m:s 'GMT'Z (zz)");
Si tiene el control del productor de las fechas, estoy de acuerdo en que usar marcas de tiempo o al menos .toUTCString()
es definitivamente más robusto.
Comentarios y puntuaciones del tutorial
Nos puedes asistir nuestra misión fijando un comentario y valorándolo te damos la bienvenida.