Go में Time एक ऐसा टाइप है जो समय के किसी एक पल को बताता है।
इसकी तारीख और समय की जानकारी को इसके मेथड के ज़रिए देखा, तुलना की और बदला जा सकता है, लेकिन कुछ फंक्शन सीधे time पैकेज पर भी कॉल किए जाते हैं।
मौजूदा तारीख और समय time.Now फंक्शन से प्राप्त किया जा सकता है।
time.Parse फंक्शन स्ट्रिंग को पार्स करके Time टाइप की वैल्यू बनाता है।
Go में यह तय करने का एक खास तरीका है कि पार्सिंग के लिए आप किस लेआउट की उम्मीद करते हैं।
इसके लिए आपको इस खास टाइमस्टैम्प की वैल्यू इस्तेमाल करके लेआउट का एक उदाहरण लिखना होता है:
Mon Jan 2 15:04:05 -0700 MST 2006।
उदाहरण के लिए:
import "time"
func parseTime() time.Time {
date := "Tue, 09/22/1995, 13:00"
layout := "Mon, 01/02/2006, 15:04"
t, err := time.Parse(layout,date) // time.Time, error
}
// => 1995-09-22 13:00:00 +0000 UTC
Time.Format() मेथड समय का स्ट्रिंग रूप लौटाता है।
Parse फंक्शन की तरह ही, यहाँ भी लक्ष्य लेआउट उसी खास टाइमस्टैम्प की वैल्यू वाले एक उदाहरण से परिभाषित किया जाता है।
उदाहरण के लिए:
import (
"fmt"
"time"
)
func main() {
t := time.Date(1995,time.September,22,13,0,0,0,time.UTC)
formattedTime := t.Format("Mon, 01/02/2006, 15:04") // string
fmt.Println(formattedTime)
}
// => Fri, 09/22/1995, 13:00
अपना लेआउट बनाने के लिए इन विकल्पों का मेल इस्तेमाल कीजिए। Go में तारीख और टाइमस्टैम्प के पहले से तय फॉर्मेट कॉन्स्टेंट भी उपलब्ध हैं।
| समय | विकल्प |
|---|---|
| वर्ष | 2006 ; 06 |
| महीना | Jan ; January ; 01 ; 1 |
| दिन | 02 ; 2 ; _2 (आगे 0 जोड़ने के लिए) |
| वार | Mon ; Monday |
| घंटा | 15 ( 24 घंटे का प्रारूप ) ; 3 ; 03 (AM या PM) |
| मिनट | 04 ; 4 |
| सेकंड | 05 ; 5 |
| AM/PM चिह्न | PM |
| वर्ष का दिन | 002 ; __2 |
time.Time टाइप में किसी खास समय को देखने के लिए कई मेथड हैं। जैसे घंटा: Time.Hour(), महीना: Time.Month()।
यह कैसे काम करता है, इसके बारे में और जानकारी आधिकारिक दस्तावेज़ में मिल सकती है।
time पैकेज में एक और टाइप भी शामिल है, Duration, जो बीते हुए समय को दर्शाता है। इसके साथ ही इसमें लोकेशन/टाइम ज़ोन, टाइमर और दूसरी जुड़ी सुविधाओं का समर्थन भी है, जिन्हें किसी और कॉन्सेप्ट में समझाया जाएगा।
इस अभ्यास में आप एक ब्यूटी पार्लर के लिए अपॉइंटमेंट शेड्यूलर पर काम करेंगे, जो 15 सितंबर 2012 को खुला था।
आपके पास पाँच काम हैं, और इन सबमें अपॉइंटमेंट की तारीखों से जुड़ा काम करना है।
Schedule फंक्शन बनाइए, जो अपॉइंटमेंट की तारीख के टेक्स्ट रूप को उसके मुताबिक time.Time फॉर्मैट में पार्स करे:
Schedule("7/25/2019 13:45:00")
// => 2019-07-25 13:45:00 +0000 UTC
HasPassed फंक्शन बनाइए, जो अपॉइंटमेंट की तारीख लेता है और जाँचता है कि अपॉइंटमेंट कहीं अतीत में थी या नहीं:
HasPassed("July 25, 2019 13:45:00")
// => true
IsAfternoonAppointment फंक्शन बनाइए, जो अपॉइंटमेंट की तारीख लेता है और जाँचता है कि अपॉइंटमेंट दोपहर बाद का समय है या नहीं (>= 12:00 और < 18:00):
IsAfternoonAppointment("Thursday, July 25, 2019 13:45:00")
// => true
Description फंक्शन बनाइए, जो अपॉइंटमेंट की तारीख लेता है और उस तारीख और समय का विवरण लौटाता है:
Description("7/25/2019 13:45:00")
// => "You have an appointment on Thursday, July 25, 2019, at 13:45."
AnniversaryDate फंक्शन बनाइए, जो वर्तमान वर्ष के लिए UTC में पार्लर के खुलने की सालगिरह की तारीख लौटाता है।
मान लीजिए कि वर्तमान वर्ष 2020 है:
AnniversaryDate()
// => 2020-09-15 00:00:00 +0000 UTC
ध्यान दें: रिटर्न वैल्यू एक time.Time है और दिन का समय मायने नहीं रखता।
Exercism पर साइन अप कीजिए और Go को 34 कॉन्सेप्ट165 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।