Analysera ett datum från en sträng

Fish Shell:
Analysera ett datum från en sträng

Hur man gör:

I Fish Shell har du inte inbyggda kommandon som specifikt är designade för att tolka datum från strängar. Istället förlitar du dig på externa verktyg som date (tillgängligt i Linux och macOS) eller använder dig av populära tredjepartsverktyg som GNU date för mer komplex tolkning. Så här går du tillväga:

Använda date med Fish:

För att tolka en datumsträng i formatet “ÅÅÅÅ-MM-DD” kan du använda date-kommandot med -d (eller --date för GNU date) alternativet följt av strängen. +-alternativet används för att formatera utdatan.

set date_str "2023-04-01"
date -d $date_str +"%A, %d %B %Y"
# Utdata: Lördag, 01 April 2023

För macOS (som kräver ett annat format för -j och -f flaggorna):

set date_str "2023-04-01"
date -j -f "%Y-%m-%d" $date_str +"%A, %d %B %Y"
# Utdata: Lördag, 01 April 2023

Använda GNU date för komplex tolkning:

GNU date är mer flexibelt med strängformat. Det kan automatiskt detektera många vanliga datumsträngsformat utan att explicit ange inmatningsformatet:

set complex_date_str "April 1, 2023 14:00"
date -d "$complex_date_str" '+%Y-%m-%d %H:%M:%S'
# Utdata: 2023-04-01 14:00:00

Dock, när man arbetar med datumsträngar som kanske inte automatiskt känns igen eller när exakt kontroll över inmatningsformatet behövs, stöds inte direkt angivning av inmatningsformatet med GNU date. I sådana fall, överväg att förbehandla strängen eller använda ett annat verktyg som är utformat för mer komplexa datumtolkningsrutiner.