2011-10-12 19 views
5

Estoy tratando de analizar una fecha que obtengo del script de JavaScript evaluado con la biblioteca rhino en java.util.Date, puedo convertir una org.mozilla. javascript.NativeDate en un java.util.Date?Parse org.mozilla.javascript.NativeDate en Java.util.Date

Si NativeDate convertir en una cadena con el método Context.tostring me sale una fecha en el siguiente formato:

Wed Oct 12 2011 16:17:59 GMT+0200 (CEST) 

¿Cómo puedo analizar esta representación de la fecha en la cadena a un objeto java.util.Date?

Respuesta

6

En Rhino utiliza

context.jsToJava(nativeDateObj, Date.class);

+2

En caso de que alguien se pregunte, ese es un método estático, no necesita acceder al contexto del script. –

-2

¿Has probado?

java.sql.Date.valueOf("date string"); 
+0

El método valueOf (String) no está definido para el tipo Fecha – aleroot

+1

Indefinido? El método existe en SE Java: http://download.oracle.com/javase/6/docs/api/java/sql/Date.html#valueOf(java.lang.String) – lynks

+0

estoy usando JDK 7 – aleroot

3

respuesta de Bvesco funciona bien. Sin embargo, hacer esto al revés (java a js) no es del todo simple: Context.javaTojs() no funciona para las fechas. Al final encontré la solución here - utilizar el constructor javascript:

Object js = context.newObject(scope, "Date", new Object[] {date.getTime()}); 

El post anterior también menciona la siguiente alternativa para convertir una fecha a partir de JS para Java (no he confirmado):

Date date = new Date((long) ScriptRuntime.toNumber(s)); 
+0

Usar el constructor de javascript funciona al ir a JS. Gracias! – bigspotteddog

+0

¿Podría ayudarme con mi problema? Estoy intentando para aplicar su solución, pero no sé cómo: http: // stackoverflo w.com/questions/33192485/using-rhino-instead-of-scriptengine-to-run-javascript-code-in-java – learner