2012-07-30 27 views
29

Necesito convertir JsDate en java.util.Date. Busqué pero no pude encontrar nada. Entonces, ¿podrías ayudarme con este problema?Cómo convertir JavaScript Fecha a Fecha en Java?

Editar: Realizo este proceso de conversión en gwt secret. Tengo datepicker en la pantalla y me da valor JsDate cuando uso su método getValue(). Entonces, supongo que debo poner este valor en la propiedad de un objeto que tiene el tipo de fecha.

ObjectName.setDate (PickerName.getValue());

Espero que mi edición sea más clara.

Edit2:

Esta línea es la solución de mi problema:

myObject.setDate(new Date((long) myPicker.getValue().getTime())); 
+3

¿Cómo se ve el código? –

+2

Bienvenido a Stack Overflow, estaremos encantados de ayudarlo, por favor brinde información sobre lo que ha intentado y cómo se ve su código actualmente – epoch

Respuesta

22

La mejor forma de conversión de fechas es utilizando el tiempo en milisegundos, UTC. Tanto el objeto JS Date como la clase java.util.Date admiten la conversión a milisegundos (getTime()) y crear instancias desde milisegundos (utilizando constructor).

+0

Sus consejos han sido muy útiles para resolver mi problema. El método getTime() sirvió para mi propósito. Gracias .. – angaraeski

+1

JS 'getTime' comienza a partir de la medianoche del 1 de enero de 1970, también lo hace java? – hakunami

+1

@hakunami, sí también lo hace Java (después de C). La única diferencia es que ANSI C cuenta el tiempo en segundos porque su 'long' tiene solo 4 bytes. Java y javascript cuentan el tiempo en milisegundos. – AlexR

0

se recomienda usar el método de análisis DateFormat (doc se puede encontrar here). Puede analizar una representación de cadena de una fecha y devolver un java.util.Date.

27

se puede crear un objeto java.util.Date de la 'vez desde la época' valor de la 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); 
+21

época del usuario que responde una pregunta sobre fechas ;-) – ManseUK

1

Usted puede querer esto :

java: 
String jsDate="2013-3-22 10:13:00"; 
Date javaDate=new SimpleDateFormat("yy-MM-dd HH:mm:ss").parse(jsDate); 
System.out.pringln(javaDate); 
8

Si la gente como yo se ven obligados a analizar una cadena de fecha con formato JS (como resultado de (new Date()).toString() en JavaScript), aquí es la especificación SimpleDateFormat utilicé:

DateFormat jsfmt = new SimpleDateFormat("EE MMM d y H:m:s 'GMT'Z (zz)"); 

Si usted tiene el control de el productor de las fechas, estoy de acuerdo que el uso de marcas de tiempo o al menos .toUTCString() es definitivamente más robusto.

+0

El formato que funciona para mí es 'EE MMM d y H: m: s 'GMT'z' – mleonard

Cuestiones relacionadas