Datums Format herausfinden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
buhtz
Beiträge: 1205
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Datums Format herausfinden

Beitrag von buhtz » 01.07.2018 13:50:47

Wie finde ich heraus welches Datumsformat das ist?

Code: Alles auswählen

Di, 12 Jun 2018 17:49:24
Als Mensch kann ich das natürlich lesen. Zur Laufzeit, kenn ich aber das Format nicht und kann daher auch nicht die bekannten strftime() Platzhalter (%Y) nutzen,
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
TRex
Moderator
Beiträge: 8318
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Datums Format herausfinden

Beitrag von TRex » 01.07.2018 14:11:49

Wenn sich das Format zur Laufzeit ändert, bleibt dir nur eine (sprachabhängige) Bibliothek, die das (fehlerbehaftet) automatisch ermittelt.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Meillo
Moderator
Beiträge: 9227
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Datums Format herausfinden

Beitrag von Meillo » 01.07.2018 18:50:26

buhtz hat geschrieben: ↑ zum Beitrag ↑
01.07.2018 13:50:47
Wie finde ich heraus welches Datumsformat das ist?

Code: Alles auswählen

Di, 12 Jun 2018 17:49:24
Wie meinst du das? Willst du wissen, wie dieses Datumsformat heisst. Die Antwort darauf ist das RFC 822 Datumsformat, allerdings ohne Zeitzone und auf Deutsch. Oder willst du ein beliebiges Datumsformat erkennen koennen.
Als Mensch kann ich das natürlich lesen. Zur Laufzeit, kenn ich aber das Format nicht und kann daher auch nicht die bekannten strftime() Platzhalter (%Y) nutzen,
Das hoert sich eher nach zweiterem an: Du willst ein beliebiges Format erkennen koennen, ohne zu wissen, welches es ist. Die kurze Antwort darauf ist, dass das unmoeglich ist. Beweis: Welches Datum ist ``01/02/03''?

(Warum eigentlich strftime(3)? Meinst du nicht eher strptime(3)? Also parsen statt formatieren?)


date(1) kann mit `-d' eine Reihe gaengiger Datumsformate erkennen. Den Weg wuerde ich gehen, evtl. mit Vorbearbeitung der Daten auf gut Glueck.

Leider ist's bei meiner Implementierung (Coreutils 8.13) mit der Internationalisierung wenig weit her. Das erkennt er naemlich nicht, obwohl er sollte:

Code: Alles auswählen

$ LC_TIME=de_DE date -d 'Di, 12 Jun 2018 17:49:24'
date: invalid date `Di, 12 Jun 2018 17:49:24'
Wenn ich den Wochentag englisch schreibe klappt's:

Code: Alles auswählen

$ date  -d 'Tue, 12 Jun 2018 17:49:24'   
Tue Jun 12 17:49:24 CEST 2018
Vielleicht ist das in einer neueren Version schon gefixt.



Btw: Ich antworte hier auch deshalb, weil Datumsformate eines meiner Lieblingsthemen sind. Mit ISO 8601/RFC 3339 waere das nicht passt! ;-)
Use ed once in a while!

halo44
Beiträge: 746
Registriert: 12.05.2015 15:19:13

Re: Datums Format herausfinden

Beitrag von halo44 » 01.07.2018 19:07:17

Wolltest Du das erfahren?

Code: Alles auswählen

echo "`date '+%a, %d %b %Y %T'`"
Gruss H.

buhtz
Beiträge: 1205
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Datums Format herausfinden

Beitrag von buhtz » 08.07.2018 22:37:09

Meillo hat geschrieben: ↑ zum Beitrag ↑
01.07.2018 18:50:26
Die Antwort darauf ist das RFC 822 Datumsformat, allerdings ohne Zeitzone und auf Deutsch.
Streng genommen, ist es also ein nicht standardiserites Format, da es ein bisschen wie RFC 822 aussieht, aber nicht ganz diesem Standard entspricht? Der Fehler ist also auf Seiten des Erzeugers (RSS-Feed von Digitalcourage) - den ich bereits benachrichtigt habe.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Antworten