Формат даты 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.
Спасибо в любом случае.
Ответы
Ответ 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)