Lua:
Chuyển đổi một ngày thành chuỗi
Làm thế nào:
Trong Lua, chúng ta sử dụng os.date
để định dạng ngày thành chuỗi. Dưới đây là một đoạn mã để bạn tham khảo.
local now = os.time()
local formatted = os.date("%Y-%m-%d %H:%M:%S", now)
print(formatted)
-- Ví dụ đầu ra: 2023-04-01 15:24:37
Muốn một vị khác? Tùy chỉnh mẫu chuỗi.
local friendly_format = os.date("%B %d, %Y")
print(friendly_format)
-- Ví dụ đầu ra: Tháng Tư 01, 2023
Sâu hơn
Hàm os.date
của Lua được mô phỏng theo hàm strftime
của POSIX. Nếu bạn nhìn kỹ, bạn sẽ nhận ra nó tương tự như gia đình hàm printf
của C—cùng gốc.
Có lựa chọn khác? Chắc chắn rồi. Bạn có thể vật lộn với việc nối chuỗi và chỉ mục bảng—tự tay lấy các phần của ngày. Nhưng tại sao phải vất vả khi os.date
có thể xử lý?
Chi tiết triển khai? Hàm os.date
có thể hoạt động theo hai cách:
- Nếu có một chuỗi định dạng, nó trả về ngày đã định dạng.
- Bỏ qua định dạng, và nó trả về một bảng với các thành phần ngày.
Sự thú vị: Các hàm liên quan đến thời gian của Lua sử dụng epoch làm tham chiếu—số giây kể từ ngày 1 tháng 1 năm 1970. Sự kỳ lạ này có nguồn gốc từ thời gian Unix.
Xem thêm
- Sách tham khảo của Lua về
os.date
: https://www.lua.org/manual/5.4/manual.html#pdf-os.date - Các chỉ định định dạng strftime để làm cho
os.date
thêm thú vị: http://strftime.org/ - Một cái nhìn sâu vào thời gian epoch Unix cho những người tò mò: https://en.wikipedia.org/wiki/Unix_time