פרסום תאריך ממחרוזת

Haskell:
פרסום תאריך ממחרוזת

איך לעשות:

מחוץ לקופסה, האסקל מציע כלים בסיסיים לפיענוח תאריכים, אולם שימוש בספריות כמו time לפונקציונליות הליבה וdate-parse או time-parse לפיענוח גמיש יותר יכול באופן משמעותי לפשט את המשימה.

ראשית, ודא שהספריה time זמינה לך; היא לעיתים קרובות כלולה עם GHC, אך אם אתה צריך לציין אותה כתלות, הוסף את time לקובץ cabal של הפרויקט שלך או השתמש בcabal install time כדי להתקין אותה ידנית.

import Data.Time.Format
import Data.Time.Clock
import System.Locale (defaultTimeLocale)

-- שימוש בספריית time לפיענוח תאריך בפורמט סטנדרטי
parseBasicDate :: String -> Maybe UTCTime
parseBasicDate = parseTimeM True defaultTimeLocale "%Y-%m-%d" 

דוגמה לשימוש ולפלט:

main :: IO ()
main = print $ parseBasicDate "2023-04-01"

-- פלט: Just 2023-03-31 22:00:00 UTC

לתרחישים מורכבים יותר, בהם אתה צריך להתמודד עם מספר פורמטים או לוקליזציות, ספריות צד שלישי כמו date-parse יכולות להיות נוחות יותר:

בהנחה שהוספת את date-parse לתלויות שלך והתקנת אותה, הנה איך ייתכן שתשתמש בה:

import Data.Time.Calendar
import Text.Date.Parse (parseDate)

-- פיענוח מחרוזת תאריך עם הספריית date-parse תומך במספר פורמטים
parseFlexibleDate :: String -> Maybe Day
parseFlexibleDate = parseDate

דוגמה לשימוש עם date-parse:

main :: IO ()
main = print $ parseFlexibleDate "April 1, 2023"

-- פלט: Just 2023-04-01

כל דוגמה מדגימה את הגישה היסודית לקחת מחרוזת ולהופכה לאובייקט תאריך שימושי בהאסקל. הבחירה בין שימוש בפונקציות פנימיות של ספריית time לבין בחירה בפתרון של צד שלישי כמו date-parse תלויה בצרכים הספציפיים של היישום שלך, כמו טווח הפורמטים שאתה צריך להתמודד איתם.