Go Programming

Go में दिनांक स्ट्रिंग पार्सिंग में महारथ

Spread the love

Go में तिथि और समय के हेरफेर के लिए उत्कृष्ट अंतर्निहित क्षमताएँ हैं। हालाँकि, विविध बाहरी स्रोतों से तिथियों को पार्स करना अक्सर चुनौतियाँ प्रस्तुत करता है। यह लेख Go में तिथि स्ट्रिंग्स को प्रभावी ढंग से पार्स करने के लिए एक व्यापक मार्गदर्शिका प्रदान करता है, जिसमें सामान्य समस्याएँ और उन्नत तकनीकें शामिल हैं।

विषय सूची

Go में तिथि और समय का निरूपण

Go का मुख्य तिथि और समय प्रकार time.Time है, जो समय के एक विशिष्ट बिंदु का प्रतिनिधित्व करता है। महत्वपूर्ण रूप से, time.Time में स्वयं कोई स्वरूप नहीं होता है; स्वरूपण और पार्सिंग यह निर्धारित करते हैं कि इसे स्ट्रिंग के रूप में कैसे दर्शाया जाता है।

time पैकेज के भीतर प्रमुख फ़ंक्शन शामिल हैं:

  • time.Now(): वर्तमान समय देता है।
  • time.Parse(): एक तिथि स्ट्रिंग को time.Time ऑब्जेक्ट में पार्स करता है।
  • time.Format(): एक time.Time ऑब्जेक्ट को स्ट्रिंग में स्वरूपित करता है।
  • time.Date(): अलग-अलग घटकों (वर्ष, महीना, दिन, आदि) से एक time.Time ऑब्जेक्ट बनाता है।

Go में तिथि स्ट्रिंग्स को पार्स करना

time.Parse() फ़ंक्शन तिथि स्ट्रिंग्स को पार्स करने के लिए केंद्रीय है। इसका सिग्नेचर है:


func Parse(layout string, value string) (Time, error)

layout: एक स्ट्रिंग जो value स्ट्रिंग के स्वरूप को परिभाषित करती है। यह विशिष्ट लेआउट वर्णों (नीचे तालिका देखें) का उपयोग करता है। केस संवेदनशीलता महत्वपूर्ण है

value: पार्स करने के लिए तिथि स्ट्रिंग।

रिटर्न: एक time.Time ऑब्जेक्ट (सफलता पर) और एक त्रुटि (विफलता पर)।

लेआउट वर्ण वर्णन उदाहरण
2 वर्ष (06) वर्ष 2006 के लिए 06
06 वर्ष (06) वर्ष 2006 के लिए 06
02 महीना (01-12) जनवरी के लिए 01
Jan महीना (Jan-Dec) जनवरी के लिए Jan
_2 दिन (01-31) दूसरे के लिए 02
01 दिन (01-31) पहले के लिए 01
15 घंटा (15-घंटा प्रारूप) दोपहर 3 बजे के लिए 15
03 घंटा (00-23) सुबह 3 बजे के लिए 03
04 मिनट (00-59) 4 मिनट के लिए 04
05 सेकंड (00-59) 5 सेकंड के लिए 05
MST समय क्षेत्र (जैसे, MST) माउंटेन स्टैंडर्ड टाइम के लिए MST

उदाहरण:


package main

import (
	"fmt"
	"time"
)

func main() {
	dateString := "January 2, 2024"
	layout := "January _2, 2006"
	t, err := time.Parse(layout, dateString)
	if err != nil {
		fmt.Println("तिथि पार्स करते समय त्रुटि:", err)
	} else {
		fmt.Println("पार्स की गई तिथि:", t)
	}
}

तिथि स्वरूपों में भिन्नताओं को संभालना

वास्तविक दुनिया के परिदृश्यों में विविध तिथि स्वरूपों को संभालने की आवश्यकता होती है। पार्सिंग से पहले सही स्वरूप की पहचान करने के लिए सशर्त तर्क या नियमित अभिव्यक्तियाँ अक्सर आवश्यक होती हैं।


package main

import (
	"fmt"
	"regexp"
	"time"
)

func main() {
	dateString := "01/02/2024"
	re1 := regexp.MustCompile(`^(d{2})/(d{2})/(d{4})$`)
	re2 := regexp.MustCompile(`^(d{4})-(d{2})-(d{2})$`)

	if re1.MatchString(dateString) {
		layout := "01/02/2006"
		t, err := time.Parse(layout, dateString)
		//Handle error and t
	} else if re2.MatchString(dateString) {
		layout := "2006-01-02"
		t, err := time.Parse(layout, dateString)
		//Handle error and t
	} else {
		fmt.Println("असमर्थित तिथि स्वरूप")
	}
}

मजबूत त्रुटि संचालन

क्रैश को रोकने के लिए हमेशा time.Parse() से संभावित त्रुटियों को संभालें। बाहरी डेटा स्रोतों से निपटते समय व्यापक त्रुटि जाँच महत्वपूर्ण है।

उन्नत पार्सिंग तकनीकें

जटिल या अनियमित तिथि स्वरूपों के लिए, ‘go-parse-date’ जैसे पुस्तकालयों का उपयोग करने पर विचार करें जो अधिक परिष्कृत पार्सिंग क्षमताएँ प्रदान करते हैं।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *