Chuyển đổi một ngày thành chuỗi

Swift:
Chuyển đổi một ngày thành chuỗi

Làm thế nào:

Swift sử dụng DateFormatter để chuyển đổi đối tượng Date thành chuỗi dễ đọc. Dưới đây là cách thức:

import Foundation

let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateString = formatter.string(from: date)
print(dateString) // Kết quả: "2023-04-05 14:20:35" (hoặc ngày và giờ hiện tại)

Thay đổi dateFormat để điều chỉnh cách hiển thị ngày tháng của bạn:

formatter.dateFormat = "EEEE, MMM d, yyyy"
print(formatter.string(from: date)) // Kết quả: "Thứ Tư, Apr 5, 2023"

Đào Sâu

Trước DateFormatter, Objective-C và phiên bản Swift đầu tiên sử dụng NSDateFormatter, về cơ bản là cùng một thứ được đổi tên. Điều quan trọng là biết đến ISO 8601, một tiêu chuẩn định dạng ngày tháng phổ biến. Các nhà phát triển phải cân bằng giữa các định dạng tùy chỉnh với cài đặt địa phương của người dùng. Tại sao? Bởi vì cách đọc ngày tháng khác nhau trên toàn thế giới. Ví dụ, người Mỹ sử dụng “MM/dd/yyyy”, trong khi nhiều quốc gia Châu Âu sử dụng “dd/MM/yyyy”.

Có phương thức thay thế không? Chắc chắn rồi. Swift cung cấp ISO8601DateFormatter cho các ngày tháng ISO 8601, và DateComponentsFormatter cho chuỗi thời lượng, như “42 phút”. Bạn cũng có thể tự tạo tùy chỉnh với .formatted() trong Swift 5.5 trở lên:

let formattedDate = date.formatted(.dateTime.year().month().day().hour().minute().second())
print(formattedDate) // Kết quả sẽ tùy thuộc vào cài đặt địa phương của bạn

Hãy cẩn trọng: Việc tạo chuỗi tùy chỉnh có thể dẫn đến nhức đầu về vấn đề địa phương hóa và code dễ xảy ra lỗi. Hãy gắn bó với các bộ định dạng và tiêu chuẩn khi có thể.

Xem Thêm