Analiza składniowa daty z łańcucha znaków

Fish Shell:
Analiza składniowa daty z łańcucha znaków

Jak to zrobić:

W Fish Shell nie masz wbudowanych poleceń specjalnie zaprojektowanych do parsowania dat z ciągów znaków. Zamiast tego, polegasz na zewnętrznych narzędziach takich jak date (dostępne w Linux i macOS) lub wykorzystujesz popularne narzędzia stron trzecich takie jak GNU date do bardziej skomplikowanego parsowania. Oto jak się za to zabrać:

Korzystając z date w Fish:

Aby przeanalizować ciąg daty w formacie “RRRR-MM-DD”, możesz użyć polecenia date z opcją -d (lub --date dla GNU date) po której następuje string. Opcja + jest używana do formatowania wyjścia.

set date_str "2023-04-01"
date -d $date_str +"%A, %d %B %Y"
# Wyjście: Sobota, 01 Kwiecień 2023

Dla systemu macOS (który wymaga innego formatu dla flag -j i -f):

set date_str "2023-04-01"
date -j -f "%Y-%m-%d" $date_str +"%A, %d %B %Y"
# Wyjście: Sobota, 01 Kwiecień 2023

Korzystając z GNU date do skomplikowanego parsowania:

GNU date jest bardziej elastyczne w zakresie formatów ciągów. Może automatycznie wykrywać wiele wspólnych formatów ciągów dat bez konieczności jawnego określania formatu wejściowego:

set complex_date_str "1 Kwiecień 2023 14:00"
date -d "$complex_date_str" '+%Y-%m-%d %H:%M:%S'
# Wyjście: 2023-04-01 14:00:00

Jednak, przy pracy z ciągami dat, które mogą nie być automatycznie rozpoznawane lub gdy potrzebna jest precyzyjna kontrola nad formatem wejściowym, jawne określenie formatu wejściowego z GNU date nie jest bezpośrednio obsługiwane. W takich przypadkach rozważ przetworzenie wcześniejsze ciągu lub użycie innego narzędzia zaprojektowanego do bardziej skomplikowanych rutyn parsowania dat.