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

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