2012-07-30 7 views
29

Devo convertire JsDate in java.util.Date. Ho cercato ma non ho trovato nulla. Quindi potresti aiutarmi con questo problema?Come convertire la data JavaScript aggiornata in Java?

Modifica: Faccio questo processo di conversione su gwt secreen. Ho datepicker sullo schermo e mi dà il valore di JsDate quando uso il metodo getValue(). Quindi suppongo di mettere questo valore in proprietà di un oggetto che ha il tipo Date.

ObjectName.setDate (PickerName.getValue());

Spero che la mia modifica sia più chiara.

Edit2:

Questa linea è la soluzione del mio problema:

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

come è il tuo codice? –

+2

Benvenuto in Stack Overflow, saremo lieti di aiutarti, fornisci alcune informazioni su ciò che hai provato e come appare il tuo codice al momento – epoch

risposta

22

Il modo migliore per la conversione delle date è l'utilizzo del tempo in millisecondi, UTC. Sia l'oggetto Date JS che la classe java.util.Date supportano la conversione in millisecondi (getTime()) e l'istanziazione da millisecondi (utilizzando il costruttore).

+0

I tuoi suggerimenti sono stati molto utili per risolvere il mio problema. il metodo getTime() è servito al mio scopo. Grazie .. – angaraeski

+1

JS 'getTime' parte dalla mezzanotte del 1 gennaio 1970, quindi fa java? – hakunami

+1

@hakunami, sì lo fa java (seguendo C). L'unica differenza è che ANSI C conta il tempo in secondi perché il suo 'long' ha solo 4 byte. Tempo di conteggio Java e javascript in millisecondi. – AlexR

0

Io suggerirei di usare il metodo DateFormat parse (doc può essere trovato here). Può analizzare una rappresentazione stringa di una data e restituire un java.util.Date.

27

È possibile creare un oggetto java.util.Date dal 'tempo da quando un'epoca' valore della 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

Epoca utente che risponde a una domanda sulle date ;-) – ManseUK

1

Si consiglia questo :

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

Se persone come me sono costretti a analizzare una stringa data JS-formattato (come il risultato di (new Date()).toString() in JavaScript), ecco le specifiche SimpleDateFormat ho usato:

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

Se si ha il controllo di il produttore delle date, concordo sul fatto che l'uso di timestamp o almeno .toUTCString() è decisamente più robusto.

+0

Il formato che funziona per me è 'EE MMM d y H: m: s 'GMT'z' – mleonard

Problemi correlati