Elixir:
การแปลงวันที่เป็นสตริง
วิธีการ:
ใน Elixir, โมดูล Date
มีฟังก์ชัน to_string/1
ที่แปลงวันที่เป็นสตริง
date = ~D[2023-03-14]
date_string = Date.to_string(date)
IO.puts(date_string) # "2023-03-14"
สำหรับการจัดรูปแบบที่กำหนดเองมากขึ้น คุณสามารถใช้ Timex
:
{:ok, datetime} = DateTime.new(~D[2023-03-14], {0, 0, 0})
formatted_date = Timex.format!(datetime, "{YYYY}-{0M}-{0D}")
IO.puts(formatted_date) # "2023-03-14"
ความรู้ลึก
ก่อน Elixir 1.3, การจัดการวันที่และเวลาเป็นเรื่องที่ยุ่งยากและพึ่งพาไลบรารีของบุคคลที่สาม ด้วยเวอร์ชัน 1.3 และหลังจากนั้น Elixir ได้รวมโมดูล Date
, Time
, และ DateTime
เพื่อการจัดการวันที่และเวลาที่ดีขึ้น
เมื่อคุณต้องการการจัดรูปแบบที่เกินกว่ามาตรฐาน ISO8601 ให้พิจารณาใช้ไลบรารี Timex
, แพ็คเกจใน Elixir ที่ให้ประสบการณ์การจัดการวันที่และเวลาอย่างครบถ้วน
การแปลงเป็นสตริงไม่ใช่เรื่องวิเศษอะไร มันเกี่ยวกับการแสดง Date
struct ในรูปแบบที่เข้าใจได้อย่างกว้างขวาง โครงสร้างมีข้อมูลมากกว่าการแสดงในรูปแบบสตริง, ดังนั้นจงตระหนักว่าการแปลงกลับจากสตริงเป็นวันที่จะสูญเสียบริบทเพิ่มเติมนี้ไปนอกจากรหัสแนบอย่างเหมาะสม
ดูเพิ่มเติม
- โมดูลวันที่ของ Elixir: https://hexdocs.pm/elixir/Date.html
- เอกสาร Timex: https://hexdocs.pm/timex/readme.html
- รูปแบบ ISO8601: https://en.wikipedia.org/wiki/ISO_8601