FullCalendar.js APIを使用してカレンダー機能を備えたWebアプリケーションを開発しています。日付と時刻を選択すると、形式は06/08/2016 3:36 PMとなります。データがDBに保存され、再度フェッチされます。その後、フォーマットはWed Jun 06 2016 03:36:00 GMT + 1000(AUS東部標準時間)に変更されます。私は06/08/2016 3:36 PMのような同じ形式を保持したいと思います。FullCalendarJSの日付と時刻形式
日付をデータベースから保存/フェッチすると、フォーマットに合わせて変換されます。 SimpleDateFormatクラスを使用して、データを挿入する前後に日付を/からStringに変換しました。それでも、形式はCalendarUIではdd/mm/yyyyに変更されません。
フォーマットを保持する方法を教えていただけますか?
は、私は上記のコードでは、私のソースコード
private Timestamp convertJSDateToJavaDate(String dat) {
java.util.Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
date = new SimpleDateFormat("dd/MM/yyyy hh:mm a").parse(dat);
String newDate = sdf.format(date);
date = sdf.parse(newDate);
} catch (ParseException e) {
e.printStackTrace();
}
return new java.sql.Timestamp(date.getTime());
}
private String convertJavaDateToJSDate(String dat) {
java.util.Date date = null;
String finalDate = "";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
try {
if (dat != null) {
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dat);
finalDate = sdf.format(date);
System.out.println("sdf - " + sdf.format(date));
}
} catch (ParseException e) {
e.printStackTrace();
}
return finalDate;
}
を添付した
を更新し、第一の方法は、Javaスクリプトから日付を取得し、DBにSQLの日付のタイムスタンプに変換して格納されます。 2番目の方法は、最初の方法とまったく逆です。
var calendar = $('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
$("#calendarModal").modal({keyboard:true});
calendar.fullCalendar('unselect');
},
editable: true,
events: '../displays/getEventCalendar.action',
eventClick: function(calEvent, jsEvent, view) {
$("#calendarModal").modal({keyboard:true});
$("#addEventCalendar_eventBean_start").val(calEvent.start);
$("#addEventCalendar_eventBean_end").val(calEvent.end);
$("#addEventCalendar_eventBean_title").val(calEvent.title);
$("#addEventCalendar_eventBean_description").val(calEvent.description);
$("#addEventCalendar_eventBean_allDay").val(calEvent.allDay);
},
timeFormat:'h:mm'
});
$('.modal form').on('submit', function(event) {
event.preventDefault();
var url = "addEventCalendar.action";
$.ajax({
type: "POST",
url: url,
data: $("#addEventCalendar").serialize(), // serializes the form's elements.
success: function(data)
{
if(data.status){
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('refetchEvents');
}
}
});
});
私はStrutsフレームワークも使用しています。イベントはJSONとして返され、カレンダーのEvents変数に割り当てられます。
私がデバッグするとき、Javaオブジェクトによって返される日付は06/08/2016 3:36であり、この特定の変数はJavaのStringです。しかし、何とかJava Date Objectに変換され、長いものが表示されます。
このJavaまたはJSについてお話していますか?いくつかのコードを教えてください。 –
"Wed Jun 06 2016 03:36:00 GMT + 1000(AUS Eastern Standard Time)"はおそらくデフォルトのロケート設定を使用してStringにシリアル化されたJava Dateオブジェクトです。私は、DBの列形式がJavaの日付と互換性があると仮定しています。 "06/08/2016 3:36 PM"の形式は、実際の日付形式ではなく、単なる文字列のようです。 Javaでは、SimpleDateFormatを使用して日付を解析および書式設定することができます。 – Leo
@Leo:私は変換するためにSDFを使用したという記事では言及しませんでした。私はちょうどポストを更新しました。その後も日付形式はJavaのDateオブジェクトです。 – Anand