• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Datum gibt eine falsche Zeit an

Blura_

Kuhfänger
Registriert
25 Juli 2019
Beiträge
79
Diamanten
300
Minecraft
Blura_
Hallo,
Ich habe als Test mir eine nachricht senden lassen mit einem SimpleDateFormat.
Doch ich bekomme eine falsche datum bei der Stunde. Die Stunde ist 1 stunde früher als es ist und alles andere ist genau richtig.
Doch ich verstehe irgendwie nicht ganz warum:
und es wäre auch nett wenn ihr mir sagen könntet wie ich es mache das das datum ein datum von einem ablauf eines longes anzeigt.
Ich bedanke mich schon im voraus für die hilfen!


Message Code:
player.sendMessage("§b" + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(new Date()));
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Mit Java 8 würde die Date & Time Library deutlich verbessert. Du kannst einfach LocalDateTime.now() verwenden, um das aktuelle Datum und die aktuelle Zeit zu bekommen.

Zur Erklärung: Date repräsentiert die UTC-Zeit, wir sind aber eben um eine Stunde verschoben. Die neuen Klassen mit Local beachten, in welcher Zeitzone der Computer befindet, der das Programm ausführt, und geben entsprechend die daran angepassten Werte zurück.
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Das würde aber trotzdem funktionieren, wenn die Systemzeitzone Europa/Berlin wär. Von daher wird auch Localtime nicht funktionieren. Entweder die Zeitzone des Systems anpassen oder Explizit Europe/Berlin angeben, das sollte auch über SampleDateFormat möglich sein https://docs.oracle.com/javase/10/docs/api/java/text/DateFormat.html#setTimeZone(java.util.TimeZone)

Ansonsten kann ich nur dringend davon abraten die DateFormat Instanz jedes mal neu zu initialisieren, da die Initialisierung ziemlich teuer ist. Stattdessen die Instanz wiederverwenden.
 

Alugor

Minecrafter
Registriert
31 Januar 2017
Beiträge
5
Alter
24
Diamanten
303
Minecraft
Alugor
Hallo,
Ich habe als Test mir eine nachricht senden lassen mit einem SimpleDateFormat.
Doch ich bekomme eine falsche datum bei der Stunde. Die Stunde ist 1 stunde früher als es ist und alles andere ist genau richtig.
Doch ich verstehe irgendwie nicht ganz warum:
und es wäre auch nett wenn ihr mir sagen könntet wie ich es mache das das datum ein datum von einem ablauf eines longes anzeigt.
Ich bedanke mich schon im voraus für die hilfen!


Message Code:
player.sendMessage("§b" + new SimpleDateFormat("dd.MM.yyyy HH:mm").format(new Date()));
Du kannst es wie folgt verwenden:
Code example:
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
format.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
String date = format.format(new Date());
player.sendMessage("§b" + date);
 

Alugor

Minecrafter
Registriert
31 Januar 2017
Beiträge
5
Alter
24
Diamanten
303
Minecraft
Alugor
Und eine Frage noch,
Wüsstest du wie ich das Datum in der Zeit anzeigen kann in dem z.B meinm long(also system.currenttimemilli) endet? Wäre echt nett wenn du mir das auch noch sagen könntest...
Meinst du sowas..?

Code example:
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
format.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
String date = format.format(new Date(System.currentTimeMillis()));
player.sendMessage("§b" + date);
 
Oben