Leider können sich die verschiedenen Länder nicht einig werden in welchem Format man das Datum richtig angibt:
Glücklicherweise hat jedes dieser Formate sein eigenen Trennzeichen!
Um das eine Format in das andere um zurechnen kann man, auf einem Unix-ähnlichen System, das Kommando date verwenden.
Möchte man ein beliebiges Format (in diesem Fall das US-Format) in das aktuelle Format, der System-Lokation ausgeben, dann sieht das wie folgt aus, wenn man das System auf Deutsch eingestellt hat:
# date -d @1326704563 +'%F %T' 2012-01-16 10:02:43
# date -d "03/28/2010" +%F 2010-03-28
Man kann auch gezielt ein bestimmtes Format angeben:
# date -d "03/28/2010" +'%d.%m.%Y' 28.03.2010
Das ganze funktioniert auch mit Uhrzeit:
# date -d "03/28/2010 01:59:59" +'%Y-%m-%d %H:%M:%S' 2010-03-28 01:59:59 # date -d "03/28/2010 01:59:59" +'%F %T' 2010-03-28 01:59:59
Man kann das auch in Sekunden seit „1970-01-01 00:00:00“ umrechnen
# date -d "03/28/2010 01:59:59" +'%s' 1269737999
Die Zeitzone kann man sich so anzeigen lassen:
# date -d "03/28/2010 01:59:59" +'%z' +0100 # date -d "03/28/2010 01:59:59" +'%Z' CET
Leider gibt es in der Zeitzone „CET“ aber diese Zeit zwischen „2010-03-28 02:00:00“ und „2010-03-28 02:59:59“ nicht!
So das man beim Versuch eine derartige Zeit umzurechnen, nur eine Fehlermeldung bekommt:
# date -d "2010-03-28 02:00:00" +'%s' date: ungültiges Datum „2010-03-28 02:00:00“
Diese Zeit kann man nicht als CET (Mitteleuropäische Zeit) sondern nur als UTC (koordinierte Weltzeit) umgerechnen:
# date -u -d "2010-03-28 02:00:00" +'%s' 1269741600
Bei dem BSD-date muss man zu jedem Eingabewert auch noch die Bedeutung angeben, damit ist es hier müglich, auch verhunste Zeitangaben zu reparieren. Immerhin gibt es eine Menge Leute, die immer noch nicht begriffen haben, wie sich die drei Formate zusammensetzen und verwenden oft das falsche Trennzeichen.
# date -jf "%a %b %d %T %Y" "Sun Mar 28 01:59:59 2010" +"%Y-%m-%d %H:%M:%S" 2010-03-28 01:59:59
# date -jf "%a %b %d %T %Z %Y" "Sun Mar 28 01:59:59 CET 2010" +"%Y-%m-%d %H:%M:%S" 2010-03-28 01:59:59