Discord

  • 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

heras

Redstoneengineer
Mitglied seit
25 Juli 2019
Beiträge
30
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

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
268
Alter
20
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.
 

❤️可愛いちゃん️❤️

Threadripper
Osterei Experte
Mitglied seit
19 Mai 2014
Beiträge
1.273
Alter
2
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.
 

Voyaris

Minecrafter
Mitglied seit
31 Januar 2017
Beiträge
5
Alter
28
Minecraft
Flubbii
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);
 

Voyaris

Minecrafter
Mitglied seit
31 Januar 2017
Beiträge
5
Alter
28
Minecraft
Flubbii
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);
 

heras

Redstoneengineer
Mitglied seit
25 Juli 2019
Beiträge
30
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);
Jo danke!
 
Oben