Phân tích ngày từ chuỗi kí tự

Swift:
Phân tích ngày từ chuỗi kí tự

Làm thế nào:

Swift khiến việc phân tích cú pháp ngày trở nên khá dễ dàng với DateFormatter. Dưới đây là một ví dụ nhanh:

import Foundation

let dateString = "2023-04-01"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"

if let parsedDate = dateFormatter.date(from: dateString) {
    print("Ngày đã phân tích cú pháp: \(parsedDate)")
} else {
    print("Không thành công trong việc phân tích cú pháp ngày.")
}

Kết quả mẫu có thể trông như thế này, tùy thuộc vào múi giờ của bạn:

Ngày đã phân tích cú pháp: 2023-03-31 22:00:00 +0000

Nhớ, kết quả mặc định ở dạng UTC!

Đào sâu hơn

Kể từ sớm như trong Objective-C, các nhà phát triển iOS đã có NSDateFormatter, và nó đã được chuyển sang Swift dưới dạng DateFormatter. Trong quá khứ, việc xử lý ngày tháng là một vấn đề lớn do sự biến đổi về định dạng và múi giờ. May mắn thay, DateFormatter trong Swift đã chuẩn hóa quy trình này.

Mặc dù DateFormatter là tốt cho các tình huống thông thường, những phương án thay thế như ISO8601DateFormatter tồn tại cho các định dạng ISO 8601, và bạn có thể thậm chí đào sâu vào API cấp thấp hơn của Cocoa với CFDateFormatter để có thêm sự kiểm soát.

Khi triển khai phân tích cú pháp ngày, luôn thiết lập locale thành posix (en_US_POSIX) để tránh hành vi không mong muốn do cài đặt của người dùng. Ngoài ra, hãy lưu ý về hiệu năng. Việc phân tích cú pháp ngày là tốn kém, vì vậy hãy tái sử dụng bộ định dạng của bạn hoặc xem xét sử dụng DateComponents cho các nhiệm vụ lặp lại.

Xem thêm