การแปลงวันที่เป็นสตริง

Kotlin:
การแปลงวันที่เป็นสตริง

วิธีการ:

ใน Kotlin คุณสามารถแปลง Date เป็น String โดยใช้คลาส SimpleDateFormat มาดูโค้ดกันเลย:

import java.text.SimpleDateFormat
import java.util.Date

fun main() {
    val date = Date() // สร้างอ็อบเจกต์ Date สำหรับเวลาปัจจุบัน
    val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") // กำหนดรูปแบบวันที่
    val dateString = format.format(date) // แปลง Date เป็น String
    println(dateString) // แสดงสตริงวันที่
}

ผลลัพธ์ตัวอย่างอาจดูเช่นนี้:

2023-03-25 14:45:32

ลงลึกลับ

ก่อนที่ java.time จะเข้าสู่เวที SimpleDateFormat เคยเป็นตัวเลือกหลักสำหรับการแปลงวันที่เป็นสตริงใน Java และด้วยเหตุผลนี้ก็สืบทอดมายัง Kotlin ด้วย Kotlin ทำงานบน Java Virtual Machine และสามารถทำงานร่วมกับไลบรารีของ Java ได้โดยไม่มีปัญหา

อย่างไรก็ตาม ด้วย Java 8 java.time เข้ามามีบทบาทพร้อมกับ DateTimeFormatter ที่มาพร้อมกับ API ที่ดีขึ้นอย่างมาก นี่เป็นการเปลี่ยนเกมสำคัญ ที่นำเสนอการจัดการวันที่และเวลาที่ปลอดภัย ไม่เปลี่ยนแปลง และสามารถใช้งานร่วมกันได้ การรองรับของ Kotlin สำหรับสิ่งนี้เป็นลักษณะเนียนตา:

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

fun main() {
    val currentDate = LocalDateTime.now() // รับวันที่และเวลาปัจจุบัน
    val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
    val formattedDate = currentDate.format(formatter)
    println(formattedDate)
}

ตัวเลือกอื่น? แน่นอน สำหรับความต้องการที่ไม่ตามมาตรฐานหรือการจัดการกับไลบรารีวันที่หลายตัว เคยมี Joda-Time เป็นมาตรฐานทอง แต่ในวันนี้ java.time สามารถดูแลส่วนใหญ่ได้

ตามรายละเอียดการเป็นรายการทำงาน SimpleDateFormat ไม่ได้เป็น thread-safe ซึ่งหมายความว่าอาจมีปัญหาเมื่อใช้งานร่วมกันในสภาพแวดล้อมพร้อมกัน DateTimeFormatter ไม่มีปัญหานี้ สร้างครั้งแรก ใช้ตลอดไป—หรืออย่างน้อยก็ในระยะเวลาการใช้งานของแอปพลิเคชั่นของคุณโดยไม่ต้องกังวลมาก

ดูเพิ่มเติม

  • DateTimeFormatter JavaDoc สำหรับความต้องการรูปแบบของคุณทั้งหมด: DateTimeFormatter
  • ถ้าคุณรู้สึกคิดถึงหรือต้องการตัวอย่างสำหรับระบบเดิม นี่คือข้อมูลเกี่ยวกับ SimpleDateFormat: SimpleDateFormat