2016-06-27 15 views
1

ist es möglich (wenn ja, wie?), Ein lokales (regionales) Datumsformat zu erhalten? Idealerweise plattformübergreifend, sonst wäre zumindest Linux für Start genug.Wie bekomme ich ein lokales (regionales) Datumsformat in Linux?

Was ich rede: Zum Beispiel diese Zeile, wenn im Terminal ausgeführt kehrt Datum (und Zeit) in lokalen (regionalen) Art und Weise formatiert:

date +"%c" 

Was Ich mag würde statt der Zahlen haben ist in welcher Form dies angezeigt wird, zum Beispiel, wenn ich meine regionale Einstellung auf Litauisch Einsen gesetzt ich:

2016 m. birželio 27 d. 19:06:11 

So würde ich das anstelle der oben zu bekommen:

YYYY MM DD 

Wenn ich gesetzt regionalen Einstellungen auf US diejenigen:

Mon 27 Jun 2016 07:09:24 PM EEST 

In diesem Fall anstelle der oben würde Ich mag bekommen:

DD MM YYYY 

Bedeutung - nicht die tatsächlichen Zahlen, aber wie lokale (regionales) Datum ist formatiert.

Ich möchte später diese Informationen benutzen, für Ein-/Ausgabeoperationen Benutzer zugewandten

+1

Vielleicht möchten Sie mehr lesen über ['strftime'] (http://en.cppreference.com/w/c/chrono/strftime) und seine Formate. Wie das Format "% c". –

+0

@JoachimPileborg alle diese Optionen geben das eine oder andere Ergebnis zurück, aber keines von ihnen liefert die Formatierung selbst. Vielleicht bin ich in meiner Post/Frage nicht klar in Bezug darauf, dass ich die Buchstaben möchte, nicht die Zahlen. Zum Beispiel gibt es vielleicht eine Systemdatenbank, die angibt, welche Formatierung verwendet werden soll, wenn% c aufgerufen wird. Ich möchte diese Information - welche Formatierung verwendet wird. – Galvotas

+2

Was ich versuche dir zu sagen ist, dass du * nicht * wissen musst, was das eigentliche Format ist. Die ['strftime'] (http://en.cppreference.com/w/c/chrono/strftime) akzeptiert auch das' "% c" 'Format, das Ihnen die Gebietsschema (Region) -abhängige Datums- und Zeitausgabe gibt, die Sie scheinen wollen. Ansonsten können Sie immer die Quelle für das 'date' Programm bekommen und schauen was es macht. –

Antwort

1

Während Joachims Hinweis richtig ist, hier eine Lösung für Ihre ursprüngliche Frage. Just in bash eingeben:

locale -k LC_TIME | grep ^d_fmt | cut -d= -f2 

Wenn Sie das Zeitformat anstelle des Datumsformats benötigen, verwenden t_fmt statt d_fmt, und für die kombinierte Datums-/Uhrzeitformat verwenden d_t_fmt

+0

Danke @Matthias, Ich habe die Datei gefunden, basierend auf Joachims Hinweis, konnte aber das Binärformat nicht dekodieren. Vielen Dank! – Galvotas

+0

Noch einfacher Bash-Befehl, der die gleiche Ausgabe gibt: 'locale d_fmt' – samjewell

Verwandte Themen