web-dev-qa-db-ja.com

Java日付形式からJavaScript日付形式へ

Java日付フォーマット文字列、たとえばdd/MM/yyyy(07/2009年6月)をJavaScriptの日付形式文字列に、たとえばdd/mm/yy(07/06/2009)。

誰かがこれを以前にやったことがありますか、またはこれをすでに行うコードを見つけるかもしれないという考えを持っていますか?

前もって感謝します。

編集:

すべての返信に感謝しますが、今では私の間違いと、おそらくあなたの多くが質問を理解するのに苦労している理由を理解しています。 JavaScriptには、日付のフォーマット機能が組み込まれていません。私はjQuery UIのdatepickerを使用しており、独自のライブラリを使用せずに、ある時点で標準のJS関数を呼び出すことを想定して、日付形式を設定しています!文字列の書式設定をグーグルで検索したとき、使用できる文字の表に直接ジャンプし、スクリプトの使用方法を説明する最初の部分をスキップしました。

とにかく先に進み、おそらく自分で書く必要があります。Java日付形式文字列をjQuery日付形式文字列に変換します(または、できるだけ近い)-私は私たちの製品の国際化とアプリケーション全体で使用される優先日付形式文字列を格納するJavaクラスを作成しました。私の意図は、同等の形式文字列をjspに提供する機能を持つことでしたJSで。

とにかくありがとう。

36
Ed .

日付をJavaからJavaScriptに渡す必要がある場合、それを行う最善の方法は、Java dateをミリ秒に変換することだと思いますdate.getTime()を使用して、new Date(milliseconds)でこのミリ秒値で初期化されたJavaScript日付を作成し、次にdate.toLocaleString()のようなJavaScript Dateオブジェクトの手段で日付をフォーマットします。

47
Ilya Boyandin

プラグイン 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");
6
Pablo Cantero

同様のトピックがここで回答されています: JavaScriptで日付を変換する

私は個人的にこれがかなり大きな痛みであると感じ、著者の提案を受け入れてライブラリを使用しました。前述のように、jQuery datepickerには、アプリケーションのダウンロードまたは既に使用しているオーバーヘッドの余裕がある場合に実行可能なソリューションがあります。

3
jnt30

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 に言及する価値があります。 2つのライブラリは互いに補完し合っていると思います。

2
Hristo

これは私にとってはうまくいきます:

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

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

Javaを使用している場合は、 Simple Date Format クラスをご覧ください。

1
Andrew Austin

MomentJS with this Plugin をお勧めします。これにより、JavaパターンをJSパターン(MomentJS)に変換できます。

1

この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);
1
JaXoN

日付をフォーマットしたいだけなら、私の日付拡張機能はそれをうまく行います-それはまた、データ形式を解析し、同様に多くの日付の計算/比較を行います:

DP_DateExtensionsライブラリ

役立つかどうかはわかりませんが、いくつかのプロジェクトで非常に貴重であることがわかりました。

0
Jim Davis

このページ のjavascriptコードはいくつかの日付関数を実装し、「Java.text.SimpleDateFormatクラスと同じフォーマット文字列を使用しますが、いくつかの小さな例外があります」。望みどおりではありませんが、良い出発点になります。

0
Csaba_H