การแปลงวันที่เป็นสตริง

Haskell:
การแปลงวันที่เป็นสตริง

วิธีการ:

ใน Haskell, คุณใช้ฟังก์ชัน formatTime จากโมดูล Data.Time.Format สำหรับงานนี้ มาดูโค้ดกันเลย:

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

main :: IO ()
main = do
    -- ดึงเวลาปัจจุบัน
    currentTime <- getCurrentTime
    let currentZone = utc
        -- แปลงเวลา UTC เป็นวัตถุเวลาท้องถิ่น
        localTime = utcToLocalTime currentZone currentTime
        -- จัดรูปแบบวันที่เป็น "YYYY-MM-DD"
        dateString = formatTime defaultTimeLocale "%F" localTime
    putStrLn dateString

และนี่คือสิ่งที่คุณอาจเห็นเป็นผลลัพธ์ ขึ้นอยู่กับวันที่ปัจจุบัน:

2023-04-01

ลงลึก

ย้อนกลับไปในยุคแรกๆ ของการเขียนโปรแกรม การแปลงวันที่เป็นสตริงเป็นเรื่องของการใช้งานจริง ใน Haskell, เรามีห้องสมุด Data.Time เพื่อจัดการกับวันและเวลา ซึ่งได้รับแรงบันดาลใจจากฟังก์ชันและการปรับปรุงเหนือห้องสมุดเก่าๆ เช่น old-time

มีทางเลือกอื่นๆ แก่ formatTime, เช่นการใช้ show เพื่อแปลงวันที่เป็นสตริงโดยตรง แต่นี้จะไม่ให้ตัวเลือกการจัดรูปแบบที่เฉพาะเจาะจง ฟังก์ชัน formatTime เป็นฟังก์ชันที่มีความหลากหลาย สนับสนุนรูปแบบการจัดรูปแบบที่หลากหลายตามแบบฟังก์ชัน strftime ของภาษา C มันยืดหยุ่นและตระหนักถึงสภาพแวดล้อมท้องถิ่น โดยใช้ defaultTimeLocale หรือสภาพแวดล้อมท้องถิ่นอื่นๆ เพื่อจัดรูปแบบวันที่ตามธรรมเนียมวัฒนธรรม

เกี่ยวกับการนำไปใช้งาน, ฟังก์ชันใน Data.Time.Format เป็นฟังก์ชันแบบบริสุทธิ์ หมายความว่าพวกมันไม่อาศัยหรือก่อให้เกิดผลลัพธ์แตกต่างจากปกติ สิ่งนี้สอดคล้องกับจิตวิญญาณการเขียนโปรแกรมแบบฟังก์ชันของ Haskell ซึ่งมุ่งเน้นให้ฟังก์ชันนั้นคาดเดาได้และผลลัพธ์ของพวกมันถูกกำหนดเพียงจากอินพุตของพวกมันเท่านั้น

ดูเพิ่มเติม

สำหรับงานที่กว้างขึ้นเกี่ยวกับวันที่และเวลาใน Haskell, สำรวจสิ่งต่อไปนี้: