Как преобразовать дату JavaScript в Java?
Мне нужно конвертировать JsDate
в java.util.Date.
, который я искал, но ничего не смог найти. Не могли бы вы помочь мне с этой проблемой?
Изменить: Я делаю этот процесс преобразования на экране GWT. У меня есть Datepicker
на экране, и он дает мне значение JsDate
, когда я использую его getValue()
. Поэтому я должен поместить это значение в свойство объекта типа Date.
ObjectName.setDate(PickerName.getValue());
Я надеюсь, что мои изменения будут более понятными.
Edit2:
Эта строка является решением моей проблемы:
myObject.setDate(new Date((long) myPicker.getValue().getTime()));
Ответы
Ответ 1
Лучший способ преобразования дат - использовать время в миллисекундах, UTC. И объект JS Date, и класс java.util.Date поддерживают преобразование в миллисекундах (getTime()
) и создание экземпляра из миллисекунд (с использованием конструктора).
Ответ 2
Вы можете создать объект java.util.Date
из значения "время с момента" JS Date
Javascript
var d = new Date().getTime();
ява
// 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);
Ответ 3
Если такие люди, как я, вынуждены разбирать строку даты в формате JS (в результате (new Date()).toString()
в JavaScript), вот спецификация SimpleDateFormat, которую я использовал:
DateFormat jsfmt = new SimpleDateFormat("EE MMM d y H:m:s 'GMT'Z (zz)");
Если у вас есть контроль над производителем дат, я согласен, что использование временных меток или, по крайней мере, .toUTCString()
, безусловно, более надежное.
Ответ 4
Вы можете захотеть это:
java:
String jsDate="2013-3-22 10:13:00";
Date javaDate=new SimpleDateFormat("yy-MM-dd HH:mm:ss").parse(jsDate);
System.out.println(javaDate);
Ответ 5
Я бы предложил использовать метод анализа DateFormat (doc можно найти здесь). Он может анализировать строковое представление даты и возвращать java.util.Date.
Ответ 6
JS Date -
новая дата()
Ср 14 августа 2019 14:54:38 GMT + 0530 (стандартное время Индии)
Java Дата -
новая дата(). toISOString()
"2019-08-14T09: 25: 50.136Z"