32

Вопрос по java, javascript – Формат даты Java в формат даты JavaScript

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

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

Заранее спасибо.

Edit:

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

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

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

Прочитав этот вопрос около двадцати раз, я думаю, что Эд означает & # x2018; как преобразовать строку, используемую для форматирования дат в Java (с помощью SimpleDateFormat), в эквивалентную строку, используемую для форматирования дат в JavaScript (с использованием Date.format)? & # x2019;

Jun 17, 2009, 3:54 PMот

(Однако я все еще не голосую по этому вопросу, потому что если вам нужно сделать это, вы делаете это неправильно).

Jun 17, 2009, 3:55 PMот

& quot; дд / мм / гг (07.06.2009) & quot; не вычисляет, но я не отредактирую его, потому что не уверен, что именно вы намереваетесь.

Jun 17, 2009, 3:29 PMот

Вы имели в виду & quot; дд / мм / гг (07/06/09)?? В противном случае я не понимаю разницы между двумя указанными вами датами.

Jun 17, 2009, 3:36 PMот

Не могли бы вы дать некоторую информацию о том, как вы передаете дату Java в код Javascript? например Вы пишете это с помощью JSP? Это очень поможет в ответе на ваш вопрос.

Jun 17, 2009, 3:33 PMот

10ответов

0

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

Библиотека DP_DateExtensions

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

45

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

1

Это прекрасно работает для меня:

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

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

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

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

(Я не знаю, почему они используют его как плагин jQuery, потому что он работает автономно.)

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

Например:

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);
0

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

3

На подобную тему ответили здесь: Конвертация дат в JavaScript

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

1

Если вы используете Java, взгляните наПростой формат даты учебный класс.

6

Вы можете использовать мой плагин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");
1

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

1

Проверять, выписываться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"

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

RelatedQuestions