Подтвердить что ты не робот

Формат даты Java для формата даты JavaScript

Я хотел бы иметь возможность конвертировать строку формата даты Java, например. dd/MM/yyyy (07/06/2009) в строку формата даты JavaScript, например. дд/мм/гг (07/06/2009).

Кто-нибудь сделал это раньше или понял, где я могу найти код, который уже делает это?

Спасибо заранее.

Edit:

Спасибо за все ответы, но теперь я осознаю свою ошибку и, возможно, почему многие из вас пытались понять вопрос; JavaScript не имеет встроенной возможности форматирования даты. Я использую jQuery UI datepicker, и я установил его формат даты, предполагая, что он будет называть стандартную функцию JS в какой-то момент, не используя свою собственную библиотеку! Когда я googled для форматирования строк, я сразу же прыгнул в таблицы, какие буквы могли использоваться, пропустив бит в начале, объяснив, как использовать script.

В любом случае мне придется идти вперед и, возможно, написать свой собственный, я думаю, преобразование строки формата даты Java в строку формата даты jQuery (или как можно ближе). Я работаю над i18n нашего продукта и созданный класс java, который хранит предпочтительную строку формата даты, используемую во всем приложении, я также хотел иметь возможность поставлять любые jsps с строкой формата, эквивалентной в JS.

Спасибо в любом случае.

4b9b3361

Ответ 1

Если вам просто нужно передать дату с Java на JavaScript, лучшим способом сделать это, я думаю, было бы преобразование даты Java в миллисекунды с помощью date.getTime(), создание даты JavaScript, инициализированной этим значением миллисекунд, с помощью new Date(milliseconds), а затем отформатируйте дату с помощью объекта JavaScript Date, например: date.toLocaleString().

Ответ 2

Вы можете использовать мой плагин jquery-dateFormat.

// Text
$.format.date("2009-12-18 10:54:50.546", "dd/MM/yyyy");
// HTML Object
$.format.date($("#spanDate").text(), "dd/MM/yyyy");
// Scriptlet
$.format.date("<%=java.util.Date().toString()%>", "dd/MM/yyyy");
// JSON
var obj = ajaxRequest();
$.format.date(obj.date, "dd/MM/yyyy");

Ответ 3

Если вы используете java, посмотрите класс Simple Date Format.

Ответ 4

На эту тему ответили: Преобразование даты в JavaScript

Я лично обнаружил, что это довольно большая боль, и взял авторское предложение и использовал библиотеку. Как уже отмечалось, у jQuery datepicker есть один, который является жизнеспособным решением, если вы можете позволить себе накладные расходы на загрузку для своего приложения или уже используя его.

Ответ 5

Это отлично работает для меня:

<%
Date date = Calendar.getInstance().getTime();
%>

<script>
var d = new Date(<%=date.getTime()%>);
alert(d);
</script>

Ответ 6

Отъезд moment.js! Это "небольшая библиотека дат javascript для синтаксического анализа, управления и форматирования дат". Это действительно мощная библиотека.

Вот пример...

var today = moment(new Date());
today.format("MMMM D, YYYY h:m A");        // outputs "April 11, 2012 2:32 PM"

// in one line...
moment().format("MMMM D, YYYY h:m A");     // outputs "April 11, 2012 2:32 PM"

Вот еще один пример...

var a = moment([2012, 2, 12, 15, 25, 50, 125]);
a.format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Monday, March 12th 2012, 3:25:50 pm"
a.format("ddd, hA");                       // "Mon, 3PM"
a.format("D/M/YYYY");                      // "12/3/2012"

Кроме того, стоит отметить checkout date.js. Я думаю, что две библиотеки дополняют друг друга.

Ответ 7

Код javascript в на этой странице реализует некоторые функции даты, и они "используют те же строки формата, что и класс java.text.SimpleDateFormat, с несколькими незначительными исключениями". Это не то, что вам нужно, но это может быть хорошей отправной точкой.

Ответ 8

Если вы просто хотите отформатировать даты, мои расширения дат сделают это хорошо - он также проанализирует форматы данных и также проведет много математики/сравнений:

Библиотека DP_DateExtensions

Не уверен, что это поможет, но я нашел его неоценимым в нескольких проектах.

Ответ 9

Эта библиотека JavaScript должна помочь вам.

http://plugins.jquery.com/project/fIsForFormat

(я не знаю, почему у них это как плагин jQuery, потому что он работает автономно.)

Вы просто разделили исходную форматированную дату на отдельные элементы и затем создали новый объект Date с этими элементами. Затем используйте эту библиотеку "Date.f()" для вывода ее в любой формат, который вы можете захотеть.

Например:

var dateOld = "11/27/2010",
    dateArr = date1.split("/"),
    dateObj = new Date(dateArr[2], dateArr[0], dateArr[1]),
    dateNew = dateObj.f("MMM d, yyyy");

document.write("Old Format: " + dateOld + "<br/>New Format: " + dateNew);

Ответ 10

Я предлагаю вам MomentJS с этим Плагин, которые позволяют преобразовать шаблон Java в шаблон JS (MomentJS)