Haskell:
Pobieranie aktualnej daty

Jak to zrobić:

Standardowa biblioteka Haskella, base, dostarcza moduł Data.Time, który oferuje funkcjonalność do pracy z datami i czasem. Oto jak użyć go do uzyskania aktualnej daty:

import Data.Time (getCurrentTime, utctDay)

main :: IO ()
main = do
    now <- getCurrentTime
    let today = utctDay now
    print today

Przykładowe wyjście:

2023-04-12

Dla większej elastyczności, takiej jak formatowanie daty czy praca z różnymi strefami czasowymi, biblioteka time jest nieoceniona. Oto jak można sformatować aktualną datę:

import Data.Time

main :: IO ()
main = do
    now <- getCurrentTime
    timezone <- getCurrentTimeZone
    let zoneNow = utcToLocalTime timezone now
    putStrLn $ formatTime defaultTimeLocale "%Y-%m-%d" zoneNow

To drukuje aktualną datę w formacie RRRR-MM-DD, dostosowaną do lokalnej strefy czasowej.

Dodatkowo, dla wsparcia biblioteki firm trzecich, time jest wysoce polecana i często używana w społeczności Haskella ze względu na jej rozległe możliwości manipulacji datą i czasem. Przykłady powyżej wykorzystują tę bibliotekę.

Jeśli potrzebujesz bardziej wszechstronnej manipulacji datą, w tym parsowania ze stringów czy operacji arytmetycznych z datami i czasem, eksploracja dodatkowych funkcji w ramach Data.Time będzie korzystna.