1

エラーメッセージ

org.codehaus.jackson.map.JsonMappingException: 文字列値 '02/23/2013' から java.util.Date のインスタンスを構築できません: 有効な表現ではありません (エラー: 日付 "02/23/2013" を解析できません:標準形式 ("yyyy-MM-dd'T'HH:mm:ss.SSSZ"、"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"、"EEE、 dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))

Java オブジェクト - エンティティ

@Column(name = "event_date")
@Temporal(TemporalType.TIMESTAMP)
private Date eventDate;

Java スクリプト

$(function() {
            $("#datepicker").datepicker();
        });

function formToJSON() {
            return JSON.stringify({
                   "eventDate": $('#datepicker').val()
            });
}

HTML

<input type="text" id="datepicker" name="date" placeholder="Date" />
4

3 に答える 3

5

あなたがすることができます:

$(function() {
   $("#datepicker").datepicker({
      dateFormat: "yy-mm-dd"
   });
});
于 2013-02-16T20:57:29.973 に答える
2

datepicker日付フォーマットユーティリティが含まれています$.datepicker.formatDate

API リファレンス: http://docs.jquery.com/UI/Datepicker/$.datepicker.formatDate

これを試して:

function formToJSON() {
            var d= $('#datepicker').datepicker('getDate')
            return JSON.stringify({
                   "eventDate": $.datepicker.formatDate('yy-mm-dd', d)
            });
}
于 2013-02-16T21:01:54.673 に答える
1

おそらくもっと良い解決策があるでしょうが、これは私がよく遭遇する問題であり、通常はすぐに利用できるツールを見つけることができないため、そのための独自の関数を作成することになりました。

function dateFormat(date) {
    function two(v) { return v < 10 ? "0" + v : "" + v; }
    function four(v) { return v < 10 ? "000" + v : v < 100 ? "00" + v : v < 1000 ? "0" + v : "" + v; }
    var y = four(date.getFullYear());
    var m = two(date.getMonth()+1);
    var d = two(date.getDate());
    return y + "-" + m + "-" + d;
};

function datetimeFormat(date) {
    function two(v) { return v < 10 ? "0" + v : "" + v; }
    function three(v) { return v < 10 ? "00" + v : v < 100 ? "0" + v : "" + v; }
    function four(v) { return v < 10 ? "000" + v : v < 100 ? "00" + v : v < 1000 ? "0" + v : "" + v; }
    var y = four(date.getUTCFullYear());
    var m = two(date.getUTCMonth()+1);
    var d = two(date.getUTCDate());
    var h = two(date.getUTCHours());
    var mm = two(date.getUTCMinutes());
    var s = two(date.getUTCSeconds());
    var ms = three(date.getUTCMilliseconds());
    return y + "-" + m + "-" + d + "T" + h + ":" + mm + ":" + s + "." + ms;
};

最初のものは、特定のケースで必要なものです。これは、日付のみを扱っている (時間ではない) ためです。

        return JSON.stringify({
               "eventDate": dateFormat($('#datepicker').datepicker('getDate'))
        });
于 2013-02-16T20:50:44.487 に答える