Jak przekonwertować ciąg daty na bieżącą strefę czasową w wierszu polecenia?

11

Jak przekonwertować ciąg daty / godziny, np. Na 2011-11-13 08:11:02 +0000lokalną strefę czasową w wierszu poleceń?

Daniel Beck
źródło
Nie wahaj się dodawać różnych odpowiedzi, ale pamiętaj, że OS X ma BSD date, a nie GNU date. Opcje są zupełnie inne.
Daniel Beck

Odpowiedzi:

17

Zastosowanie date -jf "<input format>" "<input value>" +"<output format>".

Poniższe konwertuje datę UTC na moją lokalną strefę czasową (CET):

$ date -jf "%Y-%m-%d %H:%M:%S %z" "2011-11-13 08:11:02 +0000" +"%Y_%m_%d__%H_%M_%S"
2011_11_13__09_11_02

Jeśli określisz ten sam format daty dla danych wejściowych i wyjściowych, czas będzie konwertowany tylko na lokalną strefę czasową. Ale podobnie jak w przykładzie można to połączyć z konwersją formatu.

Daniel Beck
źródło
2
Docelową strefę czasową można zmienić, tymczasowo ustawiając $TZ: TZ=EST date -jf %H%z 23+0100 +%I%p05PM
Lri