Отримання поточної дати

Haskell:
Отримання поточної дати

Як:

Стандартна бібліотека Haskell, base, надає модуль Data.Time, який пропонує функціональність для роботи з датами та часом. Ось як використовувати його для отримання поточної дати:

import Data.Time (getCurrentTime, utctDay)

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

Приклад виводу:

2023-04-12

Для більшої гнучкості, наприклад, форматування дати або роботи з різними часовими зонами, бібліотека time є незамінною. Ось як ви можете форматувати поточну дату:

import Data.Time

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

Це виводить поточну дату у форматі YYYY-MM-DD, коригованій до локальної часової зони.

Крім того, для підтримки сторонніх бібліотек, time сильно рекомендується та часто використовується в спільноті Haskell завдяки своїм широким можливостям маніпуляції з датами та часом. Приклади вище використовують цю бібліотеку.

Якщо вам потрібне більш всебічне маніпулювання датами, включаючи парсинг з рядків або арифметичні операції з датами та часом, дослідження додаткових функцій у Data.Time буде корисним.