การแยกวันที่ออกจากสตริง

Kotlin:
การแยกวันที่ออกจากสตริง

วิธีทำ:

Kotlin รองรับการแยกวิเคราะห์วันที่ผ่าน java.time แพ็คเกจ ซึ่งเปิดตัวใน Java 8 นี่คือวิธีการง่ายๆ โดยใช้ LocalDateTime และรูปแบบเฉพาะ:

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

fun parseDateFromString(dateString: String): LocalDateTime {
    val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
    return LocalDateTime.parse(dateString, formatter)
}

fun main() {
    val dateString = "2023-04-01 12:00:00"
    val date = parseDateFromString(dateString)
    println(date)  // ผลลัพธ์: 2023-04-01T12:00
}

เพื่อความยืดหยุ่นมากขึ้น หรือเพื่อจัดการกับวันที่จากแหล่งข้อมูลภายนอกเช่น API คุณอาจใช้ไลบรารีภายนอก เช่น Joda-Time (แม้ว่าจะน้อยกว่าเดิมตอนนี้ด้วย java.time ที่แข็งแกร่ง) อย่างไรก็ตาม การยึดมั่นในวิธีการทันสมัยที่ JDK ให้มาคือสิ่งที่นิยมสำหรับแอปพลิเคชั่น Kotlin ส่วนใหญ่

เพื่อแยกวิเคราะห์วันที่ใน Kotlin โดยไม่ใช้ไลบรารีภายนอก คุณยังสามารถใช้ SimpleDateFormat คลาสสำหรับเวอร์ชันก่อน Java 8 หรือระดับ API ของ Android ที่ไม่รองรับ java.time:

import java.text.SimpleDateFormat

fun parseDateUsingSimpleDateFormat(dateString: String): java.util.Date {
    val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
    return formatter.parse(dateString)
}

fun main() {
    val dateString = "2023-04-01 12:00:00"
    val date = parseDateUsingSimpleDateFormat(dateString)
    println(date)  // ผลลัพธ์อาจแตกต่างกันไปตามเขตเวลาของคุณ เช่น Sat Apr 01 12:00:00 GMT 2023
}

จำไว้เสมอว่าต้องตั้งค่าโซนเวลาถ้าคุณทำงานกับ SimpleDateFormat เพื่อหลีกเลี่ยงการเปลี่ยนแปลงเวลาที่ไม่คาดคิดในวันที่ที่แยกวิเคราะห์