-
Notifications
You must be signed in to change notification settings - Fork 0
angular json zeitzonen
Eine immer wieder kehrende Frage innerhalb einer REST-Anwendung. Wie übergebe ich Datum und Zeitstempel an das Frontend? Es gibt folgende Spielarten:
- Als vorformatierter String. Dann eröffnet sich die Frage, welches Format soll angewendet. Soll gleich das Ausgabeformat verwendet werden? Oder eher Javascript freundlich?
- Als Unix Timestamp in Millisekunden.
Das Beispiel Projekt findet sich auf Github: Springboot Demo. Die Anwendung mit git clonegit@github.com:gluehloch/springboot-demo.git
und mvn clean package bauen. Im Anschluss
das gepackte Jar mit java -jar ./target/restdemo-1.0.jar starten. Unter der
Adresse http://localhost:8080/demo/ping findet sich die Response mit verschiedenen
Datumsformaten. Mit der Annotation @JsonFormat wird der Serialisierungsprozess gesteuert.
Fehlt die Annotation, versucht der Serialisierer Jackson
eine Dekonstruktion. Im Falle von java.util.Date werden die Millisekunden (Unix-Timestamp)
zurück geliefert.
@RestController
@RequestMapping("/demo")
public class DateTimeController {
@GetMapping("/ping")
public PingDateTime ping() {
PingDateTime pdt = new PingDateTime();
pdt.setDateTime(new Date());
return pdt;
}
}
public class DateTimeJson {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd.MM.yyyy HH:mm", locale = "de_DE", timezone = "Europe/Berlin")
private Date dateTimeBerlin;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd.MM.yyyy HH:mm", locale = "de_DE", timezone = "UTC")
private Date dateTimeUtc;
private DateTime jodaDateTime;
private Date dateTimeMillies;
// getter and setters...
}
{{tippModel.round.dateTime | date: 'dd.MM.yyyy HH:mm': '+0000'}}
Information über den Unix Zeitstempel:
- Unix Zeitstempel Also die Zeit in Millisekunden seit dem 01.01.1970. Das funktioniert bis zum 19.01.2038. Also bereits in weniger als 20 Jahren werden wir einige Probleme bekommen.
- Unterschied von UTC zu GMT
by Andre Winkler 2021, Hamburg