Das Datum gibt einen Tag weniger als der tatsächliche Zeitpunkt während der Konvertierung von Datum-Kalender

Ich übertrage das Datum aus dem vorderen Ende, das IST(Datum der indischen Zeitzone). Und in den java-code, ich bin die Umwandlung Datum, um den Kalender mit dem folgenden code(Dies geschieht in der server dort in US-PST-Zeitzone).

Calendar cal = Calendar.getInstance();
int offset = date.getTimezoneOffset();
logger.info("Calendar Instance - " + cal);
cal.setTime(date);
logger.info("Calendar Instance after setting date - " + cal);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
logger.info("Calendar Instance after setting zeros - " + cal);
return cal;

so, wenn ich sehe, das Letzte Protokoll der Tag des Monats wird ein Tag weniger als das, was ich weitergegeben.zB. wenn ich den pass 22/06/2015 TRITT es Verschiebungen zu 21/06/2015. also nach der Verarbeitung schließlich zeigt es 21/06/2015 in der Liste der Daten, die in einem anderen UI-Seite.

  • Wo ist date gesetzt?
  • Don zur Verfügung-Kalender im Allgemeinen. Die Bibliothek ist ein Chaos. Verwenden Sie java.mal statt
  • Könnten Sie bitte erläutern. Die api, die in java-code akzeptiert Kalender nur. wie auf java.Zeit mit diesem.
  • Datum übergeben wird, von UI.
  • Es wäre sinnvoll zu sehen, wo/wie das UI zu schaffen, das Date Objekt, da könnte es einige Feld-Wert, mathematische Fehler. Die DAY_OF_MONTH Feld der erste Wert beginnt bei 1, nicht 0. Machst du eine beliebige Anzahl manipulation überall?
  • J Nein, ich bin nicht zu tun, eine beliebige Anzahl manupulation. private static Kalender getDateWithoutTime(Date Datum) { ---- } in diesem, wenn ich Debuggen bekomme ich Datum 22/06/2015 was IST Datum und sobald ich konvertieren, um den Kalender DAY_OF_MONTH wäre 21. Und nachdem Sie die Antwort von der API-schließlich wäre es nur 21.

Schreibe einen Kommentar