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

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

วิธีการ:

ใน Go, แพคเกจ time ให้ความสามารถในการทำงานกับวันที่และเวลา รวมถึงการจัดรูปแบบ object time.Time เป็นสตริง การใช้ Format method ของประเภท time.Time สำหรับจุดประสงค์นี้ คุณต้องระบุ layout string ตามเวลาอ้างอิง “Mon Jan 2 15:04:05 MST 2006”

ตัวอย่าง:

package main

import (
	"fmt"
	"time"
)

func main() {
	currentTime := time.Now() // ได้วันที่และเวลาปัจจุบัน
	fmt.Println("Current Time:", currentTime)

	// จัดรูปแบบเวลาปัจจุบันเป็นรูปแบบ dd-mm-yyyy
	formattedDate := currentTime.Format("02-01-2006")
	fmt.Println("Formatted Date:", formattedDate)

	// จัดรูปแบบเวลาปัจจุบันเป็นรายละเอียดเพิ่มเติม
	detailedFormat := currentTime.Format("Mon, 02 Jan 2006 15:04:05 MST")
	fmt.Println("Detailed Formatted Date:", detailedFormat)
}

ตัวอย่างผลลัพธ์:

Current Time: 2023-04-12 11:45:20.312457 +0000 UTC
Formatted Date: 12-04-2023
Detailed Formatted Date: Wed, 12 Apr 2023 11:45:20 UTC

ผลลัพธ์จะแตกต่างกันขึ้นอยู่กับวันที่และเวลาปัจจุบันเมื่อรันโปรแกรม

ศึกษาลึก:

ในบริบทของ Go, การจัดการวันที่และเวลา รวมถึงการจัดรูปแบบ จัดการโดยแพคเกจ time หลัก วิธีการจัดรูปแบบวันที่ใน Go, ที่ระบุโดย Format method โดยใช้ layout string รูปแบบเฉพาะ, มีความเฉพาะตัวเมื่อเปรียบเทียบกับภาษาโปรแกรมอื่นๆ ที่อาจใช้ตัวกำหนดรูปแบบง่ายๆ เช่น %Y สำหรับปี 4 หลัก วิธีการของ Go ต้องการให้นักพัฒนาจำเวลาอ้างอิงเฉพาะ: Mon Jan 2 15:04:05 MST 2006, เนื่องจากทำหน้าที่เป็นรูปแบบสำหรับการจัดรูปแบบหรือการแยกวิเคราะห์วันที่

วิธีการนี้, แม้แต่น้อยที่ไม่ตรงกับความคุ้นเคยของนักพัฒนากับฟังก์ชันการจัดรูปแบบคล้ายกับ strftime, ถูกออกแบบมาเพื่อความชัดเจนและหลีกเลี่ยงความสับสนของรูปแบบที่ขึ้นอยู่กับ locale เมื่อชินกับมันแล้ว หลายคนพบว่าวิธีการนี้ช่วยลดข้อผิดพลาดและปรับปรุงความสามารถในการอ่านโค้ด

นอกจากนี้, แนวทางของไลบรารีมาตรฐานของ Go หมายความว่าสำหรับกรณีการใช้งานทั่วไปส่วนใหญ่ ไลบรารีของบุคคลที่สามไม่จำเป็น สิ่งนี้ทำให้การจัดการความเสี่ยงลดลงและรับประกันพฤติกรรมที่สอดคล้องกันในโครงการต่างๆ อย่างไรก็ตาม เมื่อทำงานกับการแปลงโซนเวลาที่ซับซ้อนหรือการคำนวณวันที่ที่เกิดขึ้นซ้ำ นักพัฒนาอาจต้องดูแพคเกจเพิ่มเติมเช่น github.com/rickar/cal สำหรับการคำนวณวันหยุด หรือ github.com/golang/time สำหรับการจัดการเวลาที่มีรายละเอียดมากกว่าที่แพคเกจ time มาตรฐานเสนอ