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

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

วิธีการ:

Go ให้การสนับสนุนที่แข็งแกร่งสำหรับการแยกวิเคราะห์วันที่และเวลาผ่านแพ็กเกจ time กุญแจสำคัญคือการเข้าใจรูปแบบวันที่อ้างอิงของ Go: Mon Jan 2 15:04:05 MST 2006 ซึ่งคุณใช้มันเพื่อบอก Go ว่าจะตีความสตริงที่รับเข้ามาอย่างไร นี่คือตัวอย่างเริ่มต้นเพื่อให้คุณเริ่มต้น:

package main

import (
	"fmt"
	"time"
)

func main() {
	// ตัวอย่างวันที่สตริง
	dateStr := "2023-04-12 14:45:00"
	
	// กำหนดรูปแบบ/รูปแบบของวันที่สตริงที่รับเข้า
	// รูปแบบนี้บอก Go ว่าคาดหวังปี ตามด้วยเดือน
	// แล้วคือวัน ชั่วโมง นาที และวินาที
	layout := "2006-01-02 15:04:05"
	
	// แยกวิเคราะห์วันที่สตริงตามรูปแบบ
	parsedDate, err := time.Parse(layout, dateStr)
	if err != nil {
		fmt.Println("Error parsing date:", err)
		return
	}
	
	// แสดงผลวันที่ที่แยกวิเคราะห์ได้
	fmt.Println("Parsed Date:", parsedDate)
}

เมื่อคุณรันโค้ดนี้ คุณจะได้รับ:

Parsed Date: 2023-04-12 14:45:00 +0000 UTC

สังเกตว่าสตริง layout ใช้ค่าของวันที่อ้างอิงเพื่อระบุรูปแบบของสตริงที่รับเข้า ปรับแต่ง layout เพื่อให้ตรงกับรูปแบบของวันที่ที่คุณรับเข้ามา

ลงลึก

การออกแบบการแยกวิเคราะห์วันที่และเวลาของ Go มีเอกลักษณ์ โดยใช้วันที่อ้างอิงเฉพาะ (Mon Jan 2 15:04:05 MST 2006) วิธีนี้ถูกเลือกมาเพื่อความสามารถในการอ่านออกเขียนได้ง่ายและความสะดวกในการใช้งาน มากกว่าการใช้ตัวกำหนดรูปแบบที่แพร่หลายกว่า (เช่น YYYY สำหรับปี)

ในขณะที่วิธีนี้อาจดูผิดปกติสำหรับโปรแกรมเมอร์ที่คุ้นเคยกับภาษาอื่น หลายคนพบว่ามันมีความใช้งานง่ายขึ้นหลังจากช่วงเวลาปรับตัวสั้นๆ สำหรับแอปพลิเคชั่นที่ต้องการการจัดการวันที่ที่ซับซ้อนขึ้นหรือรูปแบบที่ไม่ได้รับการสนับสนุนโดยตรงจากแพ็กเกจ time ของ Go ไลบรารีของบุคคลที่สามเช่น github.com/jinzhu/now สามารถเสนอฟังก์ชันการทำงานเพิ่มเติม อย่างไรก็ตาม สำหรับแอปพลิเคชั่นมาตรฐานส่วนใหญ่ ความสามารถภายในของ Go นั้นแข็งแกร่ง มีประสิทธิภาพ และสอดคล้องกับปรัชญาของ Go ในเรื่องความเรียบง่ายและชัดเจน