Go (Golang) में दिनांकों के साथ कार्य: लाइब्रेरीज़ का अवलोकन
\n\nदिनांक और समय के साथ कार्य करना किसी भी प्रोग्रामिंग भाषा में मुख्य कार्यों में से एक है। Go (Golang) में, मानक लाइब्रेरी एक शक्तिशाली पैकेज time प्रदान करती है, लेकिन कभी-कभी सुविधा के लिए डेवलपर्स तृतीय-पक्ष लाइब्रेरीज़ का उपयोग करते हैं। इस लेख में, हम मानक पैकेज की मुख्य क्षमताओं का विश्लेषण करेंगे और दो लोकप्रिय लाइब्रेरीज़: carbon और now पर विचार करेंगे।
1. मानक पैकेज time
\n\nपैकेज time Go में दिनांकों के साथ कार्य करने का आधार है। इसमें प्रकार Time, Duration, पार्सिंग, फ़ॉर्मेटिंग, टाइमर और समय क्षेत्रों के साथ कार्य करने के लिए फ़ंक्शन शामिल हैं।
दिनांक बनाना और फ़ॉर्मेट करना
\n\npackage main\n\nimport (\n "fmt"\n "time"\n)\n\nfunc main() {\n // वर्तमान समय\n now := time.Now()\n fmt.Println("अभी:", now)\n\n // एक विशिष्ट दिनांक बनाना\n date := time.Date(2025, time.March, 15, 14, 30, 0, 0, time.UTC)\n fmt.Println("विशिष्ट दिनांक:", date)\n\n // फ़ॉर्मेटिंग (संदर्भ के रूप में "2006-01-02 15:04:05" अनिवार्य है)\n fmt.Println("फ़ॉर्मेट:", date.Format("02.01.2006 15:04:05"))\n}\n\n\nस्ट्रिंग को दिनांक में पार्स करना
\n\nfunc main() {\n // फ़ॉर्मेट निर्दिष्ट करके पार्सिंग\n str := "2025-03-15 14:30:00"\n parsed, err := time.Parse("2006-01-02 15:04:05", str)\n if err != nil {\n panic(err)\n }\n fmt.Println("पार्स किया गया:", parsed)\n}\n\n\nसमय क्षेत्रों के साथ कार्य
\n\nfunc main() {\n loc, _ := time.LoadLocation("Europe/Moscow")\n moscowTime := time.Now().In(loc)\n fmt.Println("मास्को समय:", moscowTime)\n}\n\n\nदिनांकों के बीच अंतर
\n\nfunc main() {\n start := time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC)\n end := time.Date(2025, 12, 31, 23, 59, 59, 0, time.UTC)\n duration := end.Sub(start)\n fmt.Printf("अंतर: %v (घंटे: %v)\\n", duration, duration.Hours())\n}\n\n\n2. लाइब्रेरी carbon
\n\nलाइब्रेरी carbon (github.com/golang-module/carbon) Go के लिए लोकप्रिय PHP लाइब्रेरी Carbon का एक पोर्ट है। यह दिनांकों के साथ कार्य करने के लिए एक सुविधाजनक fluent-इंटरफ़ेस प्रदान करती है।
\n\nस्थापना
\n\ngo get github.com/golang-module/carbon/v2\n\nउपयोग के उदाहरण
\n\npackage main\n\nimport (\n "fmt"\n "github.com/golang-module/carbon/v2"\n)\n\nfunc main() {\n // वर्तमान दिनांक\n now := carbon.Now()\n fmt.Println("अभी:", now.ToString())\n\n // दिनांक बनाना\n date := carbon.Parse("2025-03-15 14:30:00")\n fmt.Println("पार्स किया गया:", date.ToDateString())\n\n // दिन जोड़ना\n future := carbon.Now().AddDays(10)\n fmt.Println("10 दिन बाद:", future.ToDateString())\n\n // दिनों में अंतर\n diff := carbon.Now().DiffInDays(carbon.Parse("2025-12-31"))\n fmt.Printf("नए साल तक: %d दिन\\n", diff)\n\n // फ़ॉर्मेटिंग\n fmt.Println("कस्टम फ़ॉर्मेट:", carbon.Now().Format("d/m/Y H:i:s"))\n}\n\n\nसुविधाजनक विधियाँ
\n\n- \n
StartOfDay()/EndOfDay()— दिन की शुरुआत/अंत \n IsWeekend()/IsWeekday()— सप्ताह के दिन की जाँच \n Age()— जन्म तिथि से आयु \n DiffForHumans()— मानव-पठनीय अंतर (जैसे, "3 दिन पहले") \n
3. लाइब्रेरी now
\n\nलाइब्रेरी now (github.com/jinzhu/now) GORM के निर्माता द्वारा एक हल्की उपयोगिता है जो समय अवधियों की शुरुआत और अंत प्राप्त करने के लिए है।
\n\nस्थापना
\n\ngo get github.com/jinzhu/now\n\nउपयोग के उदाहरण
\n\npackage main\n\nimport (\n "fmt"\n "time"\n "github.com/jinzhu/now"\n)\n\nfunc main() {\n // दिन की शुरुआत\n beginningOfDay := now.BeginningOfDay()\n fmt.Println("