Ich möchte die Woche und das Jahr eines Datums wie 2016/06
zurückgeben. Deshalb verwende ich den folgenden Code, um es auszuprobieren:Java Date Converting: Verschiedene Woche des Jahres zurückgegeben
public static void main(String[] args) throws ParseException {
DateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
DateFormat formatWeekAndYear = new SimpleDateFormat("yyyy/ww");
String articleDate = "31.12.2015 11:26:00";
long keyDate = format.parse(articleDate).getTime();
System.out.println("KeyDate: " + keyDate + " = " + format.format(keyDate));
String formatted = formatWeekAndYear.format(keyDate);
System.out.println(formatted);
}
ich eine <Year>/<Week Of Year>
Zeichenfolge für jede Eingabe Datum zurückkehren möchten, zum Beispiel 31.12.2015 11:26:00
(siehe Code).
nun das seltsame Verhalten:
ich unterschiedliche Ergebnisse erhalten, abhängig von dem Computer, den ich das Java-Programm laufen!
Hier ist der Ausgang auf meinem lokalen PC:
KeyDate: 1451557560000 = 31.12.2015 11:26:00
2015/53
Laufen genau das gleiche Programm auf einem entfernten Rechner erhalte ich:
KeyDate: 1451557560000 = 31.12.2015 11:26:00
2015/01
Warum Computer liefert A 2015/53
und die anderen 2015/01
. Ich brauchte Tage, um diesen Unterschied herauszufinden, kann jemand eine Erklärung geben?
wahrscheinlich eine Zeitzonenausgabe –
Woche vom 31. Dezember, 2015 ist die erste Woche von 2016 daher Ihre bekommen 2015/01 s o Verwenden Sie DateFormat formatWeekAndYear = new SimpleDateFormat ("YYYY/ww"); anstelle von DateFormat formatWeekAndYear = new SimpleDateFormat ("yyyy/ww"); – Raghavendra
Ah toll, das ist auch eine Lösung für das Problem! Vielen Dank! –