खोज…
परिचय
गो time पैकेज time मापने और प्रदर्शित करने के लिए कार्यक्षमता प्रदान करता है।
यह पैकेज एक संरचना time.Time प्रदान करता है, जो दिनांक और समय पर संगणना को संग्रहीत और करने की अनुमति देता है।
वाक्य - विन्यास
- time.Date (2016, time। समय, 31, 23, 59, 59, 999, time.UTC) // initialize
- तारीख 1 == तारीख 2 // रिटर्न
trueजब 2 एक ही पल हैं - date1! = date2 // जब 2 अलग-अलग पल होते हैं तो
trueहोता है - date1.Before (तारीख 2) // रिटर्न
trueजब पहला दूसरे से पहले सख्ती से है - date1.After (तारीख 2) // रिटर्न
trueजब पहला सख्ती से दूसरे के बाद है
जब फ़ंक्शन में कोई त्रुटि हो, तो Time.Time शून्य मान लौटाएं
const timeFormat = "15 Monday January 2006"
func ParseDate(s string) (time.Time, error) {
t, err := time.Parse(timeFormat, s)
if err != nil {
// time.Time{} returns January 1, year 1, 00:00:00.000000000 UTC
// which according to the source code is the zero value for time.Time
// https://golang.org/src/time/time.go#L23
return time.Time{}, err
}
return t, nil
}
समय पार्सिंग
यदि आपके पास एक तार के रूप में एक तारीख संग्रहीत है, तो आपको इसे पार्स करने की आवश्यकता होगी। उपयोग time.Parse ।
// time.Parse( format , date to parse)
date, err := time.Parse("01/02/2006", "04/08/2017")
if err != nil {
panic(err)
}
fmt.Println(date)
// Prints 2017-04-08 00:00:00 +0000 UTC
पहला पैरामीटर वह लेआउट होता है जिसमें स्ट्रिंग तारीख को संग्रहीत करता है और दूसरा पैरामीटर वह स्ट्रिंग होता है जिसमें तारीख होती है। 01/02/2006 प्रारूप MM/DD/YYYY कहने की तुलना में समान है।
लेआउट प्रारूप को परिभाषित करता है कि कैसे संदर्भ समय, Mon Jan 2 15:04:05 -0700 MST 2006 रूप में परिभाषित किया गया है अगर यह मान था; यह इनपुट प्रारूप के एक उदाहरण के रूप में कार्य करता है। फिर उसी व्याख्या को इनपुट स्ट्रिंग के लिए बनाया जाएगा।
लेआउट स्ट्रिंग लिखने का तरीका जानने के लिए आप समय पैकेज में परिभाषित स्थिरांक देख सकते हैं, लेकिन ध्यान दें कि स्थिरांक निर्यात नहीं किए जाते हैं और उन्हें समय पैकेज के बाहर उपयोग नहीं किया जा सकता है।
const (
stdLongMonth // "January"
stdMonth // "Jan"
stdNumMonth // "1"
stdZeroMonth // "01"
stdLongWeekDay // "Monday"
stdWeekDay // "Mon"
stdDay // "2"
stdUnderDay // "_2"
stdZeroDay // "02"
stdHour // "15"
stdHour12 // "3"
stdZeroHour12 // "03"
stdMinute // "4"
stdZeroMinute // "04"
stdSecond // "5"
stdZeroSecond // "05"
stdLongYear // "2006"
stdYear // "06"
stdPM // "PM"
stdpm // "pm"
stdTZ // "MST"
stdISO8601TZ // "Z0700" // prints Z for UTC
stdISO8601SecondsTZ // "Z070000"
stdISO8601ShortTZ // "Z07"
stdISO8601ColonTZ // "Z07:00" // prints Z for UTC
stdISO8601ColonSecondsTZ // "Z07:00:00"
stdNumTZ // "-0700" // always numeric
stdNumSecondsTz // "-070000"
stdNumShortTZ // "-07" // always numeric
stdNumColonTZ // "-07:00" // always numeric
stdNumColonSecondsTZ // "-07:00:00"
)
तुलना समय
कुछ समय के लिए आपको 2 तिथियों की वस्तुओं के साथ जानना होगा, यदि एक ही तिथि के अनुरूप हैं, या पाते हैं कि कौन सी तिथि दूसरे के बाद है।
गो में , दिनांक की तुलना करने का 4 तरीका है:
-
date1 == date2, जब 2 एक ही क्षण मेंtrueहो जाता है -
date1 != date2, जब 2 अलग-अलग पल होते हैं, तबtrueहोता है -
date1.Before(date2), पहले जब सख्ती से दूसरे से पहलेtrueहो जाता है -
date1.After(date2), जब दूसरे के बाद पहली सख्ती होतीtrueतोtrueहोती है
चेतावनी: जब तुलना करने के लिए 2 समय समान हैं (या सटीक उसी तिथि के अनुरूप हैं), तो कार्य
AfterBeforeऔरAfterमेंfalseवापस आ जाएंगे, क्योंकि तिथि न तो पहले और न ही बाद में है
date1 == date1,truedate1 != date1,falseदेताfalsedate1.After(date1),falseदेताfalsedate1.Before(date1),falseदेताfalse
सुझाव: यदि आपको यह जानना आवश्यक है कि कोई तिथि पहले है या किसी अन्य के बराबर है, तो आपको 4 ऑपरेटरों को संयोजित करने की आवश्यकता है
date1 == date2 && date1.After(date2),date1 == date2 && date1.After(date2)1 के बाद या बराबर तारीख 2 होने परtrueहोता है
या का उपयोग कर! (date1.Before(date2))date1 == date2 && date1.Before(date2),date1 == date2 && date1.Before(date2)1 या 2 के बराबर या उससे पहले या तारीख!(date1.After(date2))का उपयोग करने परtrueहो जाता है!(date1.After(date2))
उपयोग करने के तरीके देखने के लिए कुछ उदाहरण:
// Init 2 dates for example
var date1 = time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
var date2 = time.Date(2017, time.July, 25, 16, 22, 42, 123, time.UTC)
var date3 = time.Date(2017, time.July, 25, 16, 22, 42, 123, time.UTC)
bool1 := date1.Before(date2) // true, because date1 is before date2
bool2 := date1.After(date2) // false, because date1 is not after date2
bool3 := date2.Before(date1) // false, because date2 is not before date1
bool4 := date2.After(date1) // true, because date2 is after date1
bool5 := date1 == date2 // false, not the same moment
bool6 := date1 == date3 // true, different objects but representing the exact same time
bool7 := date1 != date2 // true, different moments
bool8 := date1 != date3 // false, not different moments
bool9 := date1.After(date3) // false, because date1 is not after date3 (that are the same)
bool10:= date1.Before(date3) // false, because date1 is not before date3 (that are the same)
bool11 := !(date1.Before(date3)) // true, because date1 is not before date3
bool12 := !(date1.After(date3)) // true, because date1 is not after date3