Kotlin:
Chuyển đổi một ngày thành chuỗi
Làm thế nào:
Trong Kotlin, bạn có thể chuyển đổi một Date
thành String
sử dụng lớp SimpleDateFormat
. Hãy cùng viết một ít mã:
import java.text.SimpleDateFormat
import java.util.Date
fun main() {
val date = Date() // Tạo một đối tượng Date cho thời gian hiện tại
val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") // Xác định mẫu định dạng ngày
val dateString = format.format(date) // Chuyển Date thành String
println(dateString) // Xuất chuỗi ngày
}
Kết quả mẫu có thể trông như thế này:
2023-03-25 14:45:32
Sâu hơn một chút
Trước khi java.time
xuất hiện, SimpleDateFormat
là chàng ngốc đáng tin cậy để biến đổi ngày-tháng thành chuỗi trong Java và, thông qua di sản, trong Kotlin. Vâng, Kotlin chạy trên Máy Ảo Java và tương tác một cách thoải mái với thư viện Java.
Tuy nhiên, với Java 8, java.time
xuất hiện, mang theo DateTimeFormatter
với một API tinh tế hơn nhiều. Đây là một bước ngoặt, cung cấp khả năng thao tác ngày-giờ an toàn, bất biến và an toàn với luồng. Sự hỗ trợ tự nhiên của Kotlin cho điều này là mạch lạc:
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun main() {
val currentDate = LocalDateTime.now() // Lấy ngày và giờ hiện tại
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val formattedDate = currentDate.format(formatter)
println(formattedDate)
}
Có lựa chọn khác? Chắc chắn. Đối với các yêu cầu không tiêu chuẩn hoặc jong jong giữa nhiều thư viện ngày, tùy chọn bên thứ ba như Joda-Time từng là tiêu chuẩn vàng. Những ngày này, java.time
đáp ứng hầu hết các yêu cầu.
Về chi tiết triển khai, SimpleDateFormat
không an toàn với luồng, điều này có nghĩa là nó có thể gặp sự cố khi được sử dụng trong môi trường đồng thời. DateTimeFormatter
không gặp vấn đề này. Tạo một lần, sử dụng mãi mãi - hoặc ít nhất là trong suốt ứng dụng của bạn mà không phải lo lắng nhiều.
Xem thêm
DateTimeFormatter
JavaDoc cho tất cả nhu cầu về mẫu: DateTimeFormatter- Nếu bạn cảm thấy hoài cổ hoặc cần ví dụ cho các hệ thống cũ, đây là thông tin về
SimpleDateFormat
: SimpleDateFormat