Go में दिनांक और समय के साथ कार्य: मूल बातों से लेकर उन्नत तकनीकों तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go में दिनांक और समय के साथ कार्य का परिचय

\n

दिनांक और समय के साथ कार्य करना किसी भी गंभीर एप्लिकेशन में मुख्य कार्यों में से एक है। चाहे वह इवेंट लॉगिंग हो, टाइम-आउट की गणना हो, शेड्यूल के साथ कार्य हो या टाइम सीरीज़ का विश्लेषण हो, Go भाषा मानक पैकेज time में एक शक्तिशाली और सुरुचिपूर्ण टूलकिट प्रदान करती है। इस लेख में हम Go में दिनांक और समय के साथ कार्य को A से Z तक कवर करेंगे: समय ऑब्जेक्ट बनाने से लेकर टाइम ज़ोन और टाइमर के साथ जटिल संचालन तक।

\n\n

मूल बातें: time.Time संरचना और दिनांक बनाना

\n

पैकेज time का केंद्रीय तत्व time.Time संरचना है। यह नैनोसेकंड सटीकता और टाइम ज़ोन की जानकारी के साथ समय के एक क्षण का प्रतिनिधित्व करता है।

\n\n

वर्तमान समय प्राप्त करना

\n

सबसे सामान्य परिदृश्य वर्तमान क्षण प्राप्त करना है:

\n
package main\n\nimport (\n    "fmt"\n    "time"\n)\n\nfunc main() {\n    now := time.Now()\n    fmt.Println("वर्तमान समय:", now)\n}
\n\n

एक विशिष्ट दिनांक बनाना

\n

दिनांक बनाने के लिए फ़ंक्शन time.Date() का उपयोग किया जाता है। ध्यान दें: Go में महीने कॉन्स्टेंट (time.January, time.February आदि) या 1 से 12 तक की संख्या के माध्यम से निर्दिष्ट किए जाते हैं।

\n
func main() {\n    // 15 मार्च 2025, 14:30:00, UTC\n    specificDate := time.Date(2025, time.March, 15, 14, 30, 0, 0, time.UTC)\n    fmt.Println("विशिष्ट दिनांक:", specificDate)\n    \n    // नैनोसेकंड के साथ बनाना\n    preciseDate := time.Date(2025, 3, 15, 14, 30, 0, 123456789, time.UTC)\n    fmt.Println("सटीक दिनांक:", preciseDate)\n}
\n\n

दिनांक फ़ॉर्मेटिंग और पार्सिंग

\n

Go में फ़ॉर्मेटिंग के लिए एक अनूठा दृष्टिकोण उपयोग किया जाता है: %Y-%m-%d जैसे कोड के बजाय, आप संदर्भ समय Mon Jan 2 15:04:05 MST 2006 का उपयोग करते हैं (जिसे 01 02 03 04 05 06 07 के रूप में पढ़ा जाता है - वर्ष, महीना, दिन, घंटा, मिनट, सेकंड, वर्ष)।

\n\n

फ़ॉर्मेटिंग (time → स्ट्रिंग)

\n

विधि Format() दिए गए पैटर्न के अनुसार समय को स्ट्रिंग में बदलती है:

\n
func main() {\n    now := time.Now()\n    \n    // मानक प्रारूप\n    fmt.Println("RFC3339:", now.Format(time.RFC3339))\n    fmt.Println("दिनांक:", now.Format("2006-01-02"))\n    fmt.Println("समय:", now.Format("15:04:05"))\n    fmt.Println("पूर्ण प्रारूप:", now.Format("02.01.2006 15:04:05"))\n    fmt.Println("सप्ताह के दिन के साथ:", now.Format("Mon, 02 Jan 2006"))\n}
\n\n

पार्सिंग (स्ट्रिंग → time.Time)

\n

फ़ंक्शन time.Parse() स्ट्रिंग को समय संरचना में पार्स करता है। महत्वपूर्ण: पैटर्न इनपुट स्ट्रिंग के प्रारूप से बिल्कुल मेल खाना चाहिए।

\n
func main() {\n    // ज्ञात प्रारूप के साथ पार्सिंग\n    dateStr := "2025-03-15 14:30:00"\n    parsed, err := time.Parse("2006-01-02 15:04:05", dateStr)\n    if err != nil {\n        panic(err)\n    }\n    fmt.Println("पार्स किया गया:", parsed)\n    \n    // टाइम ज़ोन के साथ पार्सिंग\n    dateWithZone := "2025-03-15T14:30:00+03:00"\n    parsedWithZone, _ := time.Parse(time.RFC3339, dateWithZone)\n    fmt.Println("टाइम ज़ोन के साथ:", parsedWithZone)\n}
\n\n

समय अंकगणित: अंतराल और तुलना

\n

पैकेज time समय अंतराल का प्रतिनिधित्व करने के लिए प्रकार Duration और अंकगणितीय संचालन के लिए विधियाँ प्रदान करता है।

\n\n

जोड़ और घटाव

\n
func main() {\n    now := time.Now()\n    \n    // 2 घंटे 30 मिनट जोड़ना\n    future := now.Add(2*time.Hour + 30*time.Minute)\n    fmt.Println("2.5 घंटे बाद:", future)\n    \n    // 7 दिन घटाना\n    past := now.Add(-7 * 24 * time.Hour)\n    fmt.Println("एक सप्ताह पहले:", past)\n    \n    // कैलेंडर दिनांक के साथ कार्य के लिए AddDate का उपयोग\n    nextMonth := now.AddDate(0, 1, 0)\n    fmt.Println("एक महीने बाद:", nextMonth)\n}
\n\n

दिनांकों के बीच अंतर की गणना

\n

विधि Sub() Duration लौटाती है:

\n
func main() {\n    start := time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC)\n    end                

ब्लॉग

पुस्तक अनुशंसाएँ