Een datum converteren naar een string

Haskell:
Een datum converteren naar een string

Hoe:

In Haskell gebruik je de formatTime functie uit de module Data.Time.Format voor deze taak. Laten we direct duiken in wat code:

import Data.Time
import Data.Time.Format (formatTime, defaultTimeLocale)

main :: IO ()
main = do
    -- Pak de huidige tijd
    currentTime <- getCurrentTime
    let currentZone = utc
        -- Zet UTC tijd om in een lokaal tijdsobject
        localTime = utcToLocalTime currentZone currentTime
        -- Formatteer de datum als "YYYY-MM-DD"
        dateString = formatTime defaultTimeLocale "%F" localTime
    putStrLn dateString

En dit is wat je als uitvoer zou kunnen zien, afhankelijk van de huidige datum:

2023-04-01

Diepere Duik

Teruggaand naar de vroege dagen van programmeren, is het omzetten van datums naar strings altijd een kwestie van praktische bruikbaarheid geweest. In Haskell danken we onze datum- en tijdsbehandeling aan de Data.Time bibliotheek, die geïnspireerd was door de functionaliteit en verbeteringen ten opzichte van oudere bibliotheken zoals old-time.

Er zijn alternatieven voor formatTime, zoals het gebruik van show om direct een datum naar een string te converteren, maar dit geeft je geen aangepaste formatteringsopties. De formatTime functie is rijk, ondersteunend aan een verscheidenheid van formaten die in lijn liggen met de strftime functiepatronen van C. Het is flexibel en locatiebewust, met defaultTimeLocale of andere locales om datums te formatteren volgens culturele conventies.

Wat betreft de implementatie, de functies in Data.Time.Format zijn puur, wat betekent dat ze niet vertrouwen op of bijeffecten veroorzaken. Dit sluit aan bij het ethos van functioneel programmeren in Haskell, dat streeft naar functies die voorspelbaar zijn en waarvan de uitkomsten alleen bepaald worden door hun invoer.

Zie Ook

Voor uitgebreider werk over datums en tijden in Haskell, bekijk het volgende: