Go (Golang) में तिथियों के साथ कार्य: लाइब्रेरियाँ और उपकरण
Go (Golang) भाषा एक शक्तिशाली मानक लाइब्रेरी time प्रदान करती है, जो तिथियों और समय के साथ कार्य के अधिकांश कार्यों को कवर करती है। हालाँकि, जटिल संचालनों के लिए, जैसे कि गैर-मानक प्रारूपों को पार्स करना, सापेक्ष तिथियों के साथ कार्य करना या व्यावसायिक कैलेंडर के साथ गणना करना, समुदाय ने कई उपयोगी लाइब्रेरियाँ बनाई हैं। इस लेख में, हम Go की अंतर्निहित क्षमताओं और तिथियों के साथ कार्य के लिए सर्वश्रेष्ठ तृतीय-पक्ष पैकेजों दोनों पर विचार करेंगे।
1. अंतर्निहित लाइब्रेरी time
मानक लाइब्रेरी time Go में तिथियों के साथ किसी भी संचालन का आधार है। यह प्रदान करती है:
Time,Duration,Locationप्रकार- वर्तमान समय प्राप्त करने, तिथियाँ बनाने, पार्स करने और फ़ॉर्मेट करने के लिए फ़ंक्शन
- समय क्षेत्रों और मोनोटोनिक घड़ियों का समर्थन
वर्तमान समय प्राप्त करना
package main
import ( "fmt" "time")
func main() { now := time.Now() fmt.Println("वर्तमान समय:", now) fmt.Println("वर्ष:", now.Year()) fmt.Println("महीना:", now.Month()) fmt.Println("दिन:", now.Day())}तिथियों को फ़ॉर्मेट करना
Go में एक विशेष संदर्भ प्रारूप का उपयोग किया जाता है: Mon Jan 2 15:04:05 MST 2006 (1,2,3,4,5,6 — आरोही क्रम में अंक)।
now := time.Now()fmt.Println(now.Format("2006-01-02 15:04:05")) // 2025-03-15 14:30:00fmt.Println(now.Format("02 Jan 2006")) // 15 Mar 2025fmt.Println(now.Format(time.RFC3339)) // 2025-03-15T14:30:00Zस्ट्रिंग पार्स करना
dateStr := "2025-03-15 14:30:00"t, err := time.Parse("2006-01-02 15:04:05", dateStr)if err != nil { panic(err)}fmt.Println(t) // 2025-03-15 14:30:00 +0000 UTCसमय क्षेत्रों के साथ कार्य
loc, _ := time.LoadLocation("Europe/Moscow")moscowTime := time.Now().In(loc)fmt.Println("मास्को समय:", moscowTime.Format("15:04:05"))2. लाइब्रेरी carbon
पैकेज github.com/golang-module/carbon लोकप्रिय PHP लाइब्रेरी Carbon का Go-एनालॉग है। यह तिथियों के साथ कार्य के लिए एक सुविधाजनक API प्रदान करता है, जिसमें सापेक्ष तिथियाँ, मानव-पठनीय प्रारूप और श्रृंखलाबद्ध कॉल शामिल हैं।
स्थापना
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.ToDateString()) // 2025-03-15
// सापेक्ष तिथियाँ fmt.Println(now.AddDays(7).ToDateString()) // 2025-03-22 fmt.Println(now.SubMonths(1).ToDateString()) // 2025-02-15 fmt.Println(now.StartOfMonth().ToDateString()) // 2025-03-01 fmt.Println(now.EndOfMonth().ToDateString()) // 2025-03-31
// मानव-पठनीय प्रारूप fmt.Println(now.DiffForHumans()) // अभी अभी
// कई प्रारूपों के समर्थन के साथ पार्सिंग t := carbon.Parse("2025-03-15 14:30:00") fmt.Println(t.ToDateTimeString()) // 2025-03-15 14:30:00
// समय क्षेत्रों के साथ कार्य cst := carbon.Now(carbon.NewYork) fmt.Println(cst.ToDateTimeString()) // न्यूयॉर्क में समय}3. लाइब्रेरी now
पैकेज github.com/jinzhu/now (GORM के लेखक द्वारा) समय अवधियों की शुरुआत और अंत प्राप्त करने के लिए सुविधाजनक फ़ंक्शन प्रदान करता है।
स्थापना
go get github.com/jinzhu/nowउदाहरण
package main
import ( "fmt" "github.com/jinzhu/now" "time")
func main() { t := time.Now() fmt.Println(now.BeginningOfMonth(t)) // 2025-03-01 00:00:00 fmt.Println(now.EndOfMonth(t)) // 2025-03-31 23:59:59 fmt.Println(now.BeginningOfYear(t)) पुस्तकालय में भी
C++ में HTML पार्सिंग: DOM और XPath के साथ काम करने के लिए लाइब्रेरी और उदाहरण
Node.js में क्रिप्टोग्राफी: crypto के साथ एन्क्रिप्शन और हैशिंग
TypeScript में लॉगिंग: winston लाइब्रेरी
Rust में Kafka के साथ कार्य: शुरुआती लोगों के लिए लाइब्रेरी और उदाहरण