Go में दिनांक और समय के साथ कार्य: मूल बातों से लेकर उन्नत तकनीकों तक
Go (Golang) प्रोग्रामिंग भाषा दिनांक और समय के साथ काम करने के लिए एक शक्तिशाली और सहज ज्ञान युक्त time पैकेज प्रदान करती है। कई अन्य भाषाओं के विपरीत, Go फ़ॉर्मेटिंग के लिए एक अनूठा दृष्टिकोण उपयोग करता है, जो संदर्भ दिनांक (Mon Jan 2 15:04:05 MST 2006) पर आधारित है। इस लेख में, हम समय ऑब्जेक्ट बनाने से लेकर टाइमर और समय क्षेत्रों के साथ काम करने तक, सभी प्रमुख पहलुओं पर विस्तार से चर्चा करेंगे। यह सामग्री शुरुआती और Go पर स्विच करने वाले अनुभवी डेवलपर्स दोनों के लिए उपयोगी होगी।
1. मूल बातें: समय बनाना, प्राप्त करना और प्रदर्शित करना
काम करने के लिए केंद्रीय प्रकार time.Time है। वर्तमान क्षण प्राप्त करने के लिए time.Now() का उपयोग किया जाता है। एक विशिष्ट दिनांक बनाने के लिए time.Date() का उपयोग किया जाता है।
package main
import ( "fmt" "time")
func main() { // वर्तमान समय now := time.Now() fmt.Println("अब:", now)
// एक विशिष्ट दिनांक बनाना (वर्ष, महीना, दिन, घंटा, मिनट, सेकंड, नैनोसेकंड, Location) specific := time.Date(2025, time.January, 15, 10, 30, 0, 0, time.UTC) fmt.Println("विशिष्ट दिनांक:", specific)
// घटकों को निकालना fmt.Println("वर्ष:", now.Year()) fmt.Println("महीना:", now.Month()) fmt.Println("दिन:", now.Day()) fmt.Println("घंटा:", now.Hour()) fmt.Println("मिनट:", now.Minute()) fmt.Println("सेकंड:", now.Second()) fmt.Println("सप्ताह का दिन:", now.Weekday())}प्रोग्राम का आउटपुट वर्तमान समय और उसके घटकों को दिखाएगा। ध्यान दें: time.Now() सिस्टम के स्थानीय समय क्षेत्र में समय लौटाता है।
2. फ़ॉर्मेटिंग और पार्सिंग: Go की विशिष्ट विशेषता
Go में, दिनांक फ़ॉर्मेटिंग YYYY-MM-DD जैसे वर्णों के माध्यम से नहीं, बल्कि संदर्भ दिनांक के माध्यम से होती है: Mon Jan 2 15:04:05 MST 2006 (या 01/02 03:04:05PM '06 -0700)। इस जादुई स्ट्रिंग को याद रखें - यह 1 2 3 4 5 6 -7 जैसी दिखती है।
- 1 — महीना (01, Jan, January)
- 2 — दिन (02, 2)
- 3 — 12-घंटे के प्रारूप में घंटा (03, 3)
- 4 — मिनट (04, 4)
- 5 — सेकंड (05, 5)
- 6 — वर्ष (06, 2006)
- -7 — समय क्षेत्र (MST, -0700, -07:00)
फ़ॉर्मेटिंग (Time → String)
now := time.Now()
// मानक प्रारूपfmt.Println(now.Format("2006-01-02 15:04:05")) // 2025-01-15 10:30:45fmt.Println(now.Format("02.01.2006")) // 15.01.2025fmt.Println(now.Format(time.RFC3339)) // 2025-01-15T10:30:45Zfmt.Println(now.Format("Mon, 02 Jan 2006 15:04:05 MST")) // Wed, 15 Jan 2025 10:30:45 UTCपार्सिंग (String → Time)
// स्ट्रिंग को time.Time में पार्स करनाdateStr := "2025-01-15 10:30:45"layout := "2006-01-02 15:04:05"parsedTime, err := time.Parse(layout, dateStr)if err != nil { panic(err)}fmt.Println("पार्स किया गया:", parsedTime)
// समय क्षेत्र के साथ पार्सिंगdateWithZone := "2025-01-15T10:30:45+03:00"parsedWithZone, _ := time.Parse(time.RFC3339, dateWithZone)fmt.Println("क्षेत्र के साथ:", parsedWithZone)यदि आपको किसी विशिष्ट समय क्षेत्र में दिनांक पार्स करने की आवश्यकता है, तो time.ParseInLocation() का उपयोग करें।
3. दिनांक संचालन: Duration, Add, Sub और तुलना
प्रकार time.Duration समय अंतराल का प्रतिनिधित्व करता है। Go स्थिरांक प्रदान करता है: Nanosecond, Microsecond, Millisecond, Second, Minute, Hour।
now := time.Now()
// समय जोड़नाfuture := now.Add(72 * time.Hour) // +3 दिनfmt.Println("72 घंटे बाद:", future)
// समय घटानाpast := now.Add(-30 * time.Minute) // 30 मिनट पहले```