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
มาตรฐานเสนอ