Я разрабатываю веб-приложение с функцией календаря с использованием API FullCalendar.js. Когда я выбираю дату и время, формат 06/08/2016 3:36 PM. Как только данные будут сохранены в БД и снова получены. Затем формат изменяется на Ср 06.06.2016 03:36:00 GMT + 1000 (время восточного восточного побережья США). Я хочу сохранить тот же формат, что и 06/08/2016 3:36 PM.Формат даты и времени в FullCalendarJS
Когда я сохраняю/получаю дату из/в базу данных, я конвертирую ее в соответствии с форматом. Я использовал класс SimpleDateFormat для преобразования даты из/в строку до и после вставки данных. Даже тогда формат не изменяется на dd/mm/yyyy в CalendarUI.
Может ли кто-нибудь из вас узнать, как сохранить формат?
ОБНОВЛЕНО
Я приложил свой исходный код
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 Script и преобразует в SQL отметку даты и времени и хранит в БД , Второй метод полностью противоположный первому.
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 Object, равна 06/08/2016 3:36, и эта конкретная переменная является String в Java. Но каким-то образом его преобразование в объект Java Date и отображение длинного.
Является ли это java или JS, о котором вы говорите? Пожалуйста, покажите нам какой-нибудь код. –
«Ср Июн 06 2016 03:36:00 GMT + 1000 (AUS Eastern Standard Time)», вероятно, объект Java Date, сериализованный в String с использованием настроек локализации по умолчанию. Я предполагаю, что формат столбца БД совместим с Java Date. Формат «06/08/2016 3:36 PM» кажется просто строкой, а не реальным форматом даты. В Java вы можете анализировать и форматировать даты с помощью SimpleDateFormat – Leo
@Leo: Я не упоминал в сообщении, что использовал SDF для преобразования. Я только что обновил сообщение. Даже после этого формат даты - это объект Date Java. – Anand