2016-06-02 10 views
0

Ich entwickle eine Web-App mit einer Kalenderfunktionalität mit FullCalendar.js API. Wenn ich Datum und Uhrzeit auswähle, lautet das Format 06/08/2016 3:36 PM. Sobald die Daten in der Datenbank gespeichert und erneut abgerufen werden. Dann wird das Format geändert in Mi Jun 06 2016 03:36:00 GMT + 1000 (AUS Eastern Standardzeit). Ich möchte das gleiche Format wie 06/08/2016 3:36 PM beibehalten.Datum und Uhrzeit Format in FullCalendarJS

Wenn ich das Datum aus/in die Datenbank speichern/abrufen, wandle ich es in das Format um. Ich habe die SimpleDateFormat-Klasse verwendet, um das Datum von/in String vor und nach dem Einfügen der Daten zu konvertieren. Auch dann wird das Format in der CalendarUI nicht in dd/mm/yyyy geändert.

Kann jemand von Ihnen bitte mich leiten, wie man das Format behält?

AKTUALISIERT

Ich habe meine Quellcode angebracht

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; 
} 

In dem obigen Code, die erste Methode ist, das Datum von Java Script und wandelt in SQL Datum-Zeitstempel und speichert in DB . Die zweite Methode ist genau umgekehrt zur ersten.

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'); 
         } 
       } 
      }); 
     }); 

Ich verwende auch das Struts-Framework. Ereignisse werden als JSON zurückgegeben und der Ereignisvariable im Kalender zugewiesen.

Wenn ich debugge, ist das Datum von Java-Objekt zurückgegebene 06/08/2016 3:36 und diese bestimmte Variable ist String in Java. Aber irgendwie wird es in Java Date Object konvertiert und zeigt das lange an.

+0

Ist dieses Java oder JS Sie reden? Bitte zeigen Sie uns etwas Code. –

+0

"Wed Jun 06 2016 03:36:00 GMT + 1000 (AUS Eastern Standard Time)" ist wahrscheinlich das Java Date-Objekt, das mit den Standard-Locate-Einstellungen zu einem String serialisiert wird. Ich gehe davon aus, dass das DB-Spaltenformat mit Java Date kompatibel ist. Das Format "06/08/2016 3:36 PM" scheint nur ein String zu sein, kein echtes Datumsformat. In Java können Sie Daten mit SimpleDateFormat – Leo

+0

@Leo analysieren und formatieren: Ich habe in dem Beitrag nicht erwähnt, dass ich SDF zum Konvertieren verwendet habe. Ich habe gerade den Beitrag aktualisiert. Auch danach ist das Datumsformat das Date-Objekt von Java. – Anand

Antwort

0

Vielen Dank für Ihre Vorschläge.

Ich bin in der Lage, das Datum zu JavaScript-Datum Objekt zu konvertieren und bildete das Datum String in dem Format, das ich wollte. Ich habe auch den bootstrap-datetimepicker verwendet, um das Datum und die Uhrzeit auf dem Bildschirm auszuwählen.

Anbei der Code-Extrakt, wo die Konvertierung von Datum und Uhrzeit stattfindet.

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); });