2016-06-02 1 views
0

Я разрабатываю веб-приложение с функцией календаря с использованием 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 и отображение длинного.

+0

Является ли это java или JS, о котором вы говорите? Пожалуйста, покажите нам какой-нибудь код. –

+0

«Ср Июн 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

+0

@Leo: Я не упоминал в сообщении, что использовал SDF для преобразования. Я только что обновил сообщение. Даже после этого формат даты - это объект Date Java. – Anand

ответ

0

Спасибо за ваши предложения.

Я могу преобразовать дату в объект Date JavaScript и сформировал дату String в том формате, который я хотел. Я также использовал параметр bootstrap-datetimepicker, чтобы выбрать дату и время на экране.

Прилагается извлечение кода, в котором происходит преобразование даты и времени.

eventClick: function(calEvent, jsEvent, view) { 

      var a = new Date(calEvent.start); 
      var start = ("0" + a.getDate()).slice(-2)+ "/"+("0" + (a.getMonth() + 1)).slice(-2) + "/" + a.getFullYear() + " "+("0" + a.getHours()).slice(-2) +":" + ("0" + a.getMinutes()).slice(-2); 
      a = new Date(calEvent.end); 
      var end = ("0" + a.getDate()).slice(-2)+ "/"+("0" + (a.getMonth() + 1)).slice(-2) + "/" + a.getFullYear() + " "+("0" + a.getHours()).slice(-2) +":" + ("0" + a.getMinutes()).slice(-2); 

       $("#calendarModal").modal({keyboard:true}); 
       $("#addEventCalendar_eventBean_id").val(calEvent.id); 
       $("#addEventCalendar_eventBean_start").val(start); 
       $("#addEventCalendar_eventBean_end").val(end); }); 
Смежные вопросы