Go (Golang) में दिनांकों के साथ कार्य: पुस्तकालयों का पूर्ण अवलोकन
दिनांकों और समय के साथ कार्य करना वेब डेवलपमेंट, एनालिटिक्स और बैकएंड में सबसे सामान्य कार्यों में से एक है। Go (Golang) में मानक पुस्तकालय time एक शक्तिशाली, लेकिन हमेशा सहज ज्ञान युक्त टूलकिट प्रदान नहीं करता है। डेवलपमेंट को सरल बनाने के लिए कई तृतीय-पक्ष पुस्तकालय मौजूद हैं। इस लेख में, हम Go में दिनांकों के साथ कार्य करने के लिए मुख्य दृष्टिकोणों और लोकप्रिय पुस्तकालयों पर विस्तार से चर्चा करेंगे।
1. मानक time पैकेज
time पैकेज Go में दिनांकों और समय के साथ कार्य करने का आधार है। इसमें Time, Duration, Location प्रकार और फ़ॉर्मेटिंग, पार्सिंग और अंकगणित के लिए फ़ंक्शन शामिल हैं।
मुख्य क्षमताएँ:
- वर्तमान समय:
time.Now() - फ़ॉर्मेटिंग: विधि
.Format(layout string)— एक विशेष संदर्भ प्रारूपMon Jan 2 15:04:05 MST 2006का उपयोग करता है (Go का जन्म 2006 में हुआ था)। - पार्सिंग: फ़ंक्शन
time.Parse(layout, value string)। - अंकगणित: विधियाँ
.Add(d Duration),.Sub(t Time),.AddDate(y, m, d int)। - समय क्षेत्र:
time.LoadLocation(name string)और विधि.In(loc *Location)।
package main
import ( "fmt" "time")
func main() { // वर्तमान समय now := time.Now() fmt.Println("अभी:", now)
// फ़ॉर्मेटिंग fmt.Println("RFC3339 प्रारूप:", now.Format(time.RFC3339)) fmt.Println("कस्टम प्रारूप:", now.Format("02.01.2006 15:04:05"))
// स्ट्रिंग पार्सिंग parsed, _ := time.Parse("2006-01-02", "2024-03-15") fmt.Println("पार्स किया गया:", parsed)
// समय क्षेत्रों के साथ कार्य loc, _ := time.LoadLocation("Europe/Moscow") moscowTime := now.In(loc) fmt.Println("मास्को में समय:", moscowTime)
// अंकगणित tomorrow := now.AddDate(0, 0, 1) fmt.Println("कल:", tomorrow.Format("02.01.2006"))}विशेषता: Go एक अद्वितीय संदर्भ प्रारूप (2006-01-02T15:04:05Z07:00) का उपयोग करता है, न कि सामान्य YYYY-MM-DD का। इसकी आदत डालनी पड़ती है, लेकिन यह अस्पष्टताओं को समाप्त करता है।
2. carbon पुस्तकालय (PHP के Carbon का एनालॉग)
carbon पुस्तकालय लोकप्रिय PHP पुस्तकालय Carbon का एक पोर्ट है। यह दिनांकों के साथ कार्य करने के लिए एक सुविधाजनक fluent-इंटरफ़ेस प्रदान करता है।
स्थापना:
go get github.com/golang-module/carbon/v2उपयोग के उदाहरण:
package main
import ( "fmt" "github.com/golang-module/carbon/v2")
func main() { // वर्तमान दिनांक now := carbon.Now() fmt.Println("अभी:", now.ToDateTimeString())
// दिनांक बनाना date := carbon.CreateFromDate(2024, 3, 15) fmt.Println("दिनांक:", date.ToDateString())
// दिनांकों के बीच अंतर start := carbon.Parse("2024-01-01") end := carbon.Parse("2024-03-15") diff := start.DiffInDays(end) fmt.Printf("दिनों के बीच: %d", diff)
// मानव-पठनीय प्रारूप fmt.Println("कल:", carbon.Yesterday().ToDateString()) fmt.Println("कल:", carbon.Tomorrow().ToDateString())
// जाँच fmt.Println("अभी छुट्टी का दिन है?", now.IsWeekend()) fmt.Println("अभी सुबह है?", now.IsMorning())}लाभ: सरल API, चीनी अक्षरों के लिए समर्थन, स्थानीयकरण, दिन/सप्ताह/महीने की शुरुआत/अंत के साथ कार्य करने के लिए विधियाँ।
3. now पुस्तकालय (न्यूनतम उपकरण)
GORM के लेखक द्वारा now पुस्तकालय समय अवधियों की शुरुआत और अंत की गणना करने के लिए एक हल्का उपकरण है।