Lua:
การแปลงวันที่เป็นสตริง
วิธีการ:
ใน Lua เราใช้ os.date
สำหรับการจัดรูปแบบวันที่ให้เป็นสตริง นี่คือชิ้นส่วนของโค้ดที่คุณสามารถลองศึกษาได้
local now = os.time()
local formatted = os.date("%Y-%m-%d %H:%M:%S", now)
print(formatted)
-- ตัวอย่างผลลัพธ์: 2023-04-01 15:24:37
ต้องการรูปแบบที่แตกต่างออกไปหรือไม่? ปรับแต่งรูปแบบสตริงตามที่คุณต้องการ
local friendly_format = os.date("%B %d, %Y")
print(friendly_format)
-- ตัวอย่างผลลัพธ์: เมษายน 01, 2023
การดำดิ่งลึก
ฟังก์ชัน os.date
ของ Lua ถูกออกแบบตามฟังก์ชัน strftime
ของ POSIX หากคุณดูใกล้ๆ คุณจะสังเกตเห็นว่ามันคล้ายคลึงกับครอบครัวฟังก์ชัน printf
ของภาษา C—รากฐานเดียวกัน
มีทางเลือกอื่นหรือไม่? แน่นอน คุณอาจเลือกใช้การต่อสตริงและการอ้างถึงตารางด้วยตัวเอง—การเลือกส่วนประกอบของวันที่ด้วยตนเอง แต่ทำไมต้องยุ่งยากเมื่อ os.date
รับมือได้ทุกอย่าง?
รายละเอียดการตั้งค่า? ฟังก์ชัน os.date
สามารถทำงานในสองวิธี:
- หากมีการให้สตริงรูปแบบ มันจะคืนค่าวันที่ที่จัดรูปแบบแล้ว
- หากไม่มีการกำหนดรูปแบบ ฟังก์ชันนี้จะคืนค่าตารางที่มีส่วนประกอบของวันที่
ข้อเท็จจริงที่สนุก: ฟังก์ชันที่เกี่ยวกับเวลาของ Lua ใช้จุดอ้างอิงเป็นเอพอค—จำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม 1970 ความผิดปกตินี้ตามรอยเท้ามาจากเวลาของ Unix
ดูเพิ่มเติม
- คู่มืออ้างอิงของ Lua เกี่ยวกับ
os.date
: https://www.lua.org/manual/5.4/manual.html#pdf-os.date - ตัวกำหนดรูปแบบ strftime เพื่อเพิ่มเครื่องเทศให้กับ
os.date
: http://strftime.org/ - การดำดิ่งลึกเข้าไปยังเวลาเอพอกของ Unix สำหรับผู้ที่อยากรู้: https://en.wikipedia.org/wiki/Unix_time