1: کاربن کے ساتھ شروع ہونا
1.1 مقدمہ
کاربن ایک سادہ، زیرہ وساعت اور ڈویلپر دوست Golang پیکیج ہے جو تاریخ و وقت کو سنجیدہ بناتا ہے۔
تاریخ و وقت کی سنجیدہ کرنے کے لئے کاربن کا استعمال کرنے کے فوائد:
- ڈویلپر دوست: کاربن ڈویلپرز کے لئے سمجھنے میں آسان اور روشن فہم انٹرفیس پیش کرتا ہے۔
- بین الاقوامیت کی حمایت: بین الاقوامیت کی حمایت فراہم کرتا ہے، جو آپ کو آپ کے تاریخ کے تراشے کو مقامی بنانے کی اجازت دیتا ہے۔
- غیر قابل تبدیلی: کاربن کے مثالیں غیر قابل تبدیل ہیں، جس کا مطلب ہے کے یہ بلا آسانی آس پاس منتقل کیے جا سکتے ہیں بغیر غیر متوقع ترمیم کے۔
- وقتی کٹاروں کی منظم کرنے : کاربن مختلف ٹائم زونز کے درمیان وقتوں کو منظم کرنے کی پیچیدگی کو سادہ بناتا ہے۔
- تھوس اے پی آئی : تاریخ اور وقت کے بنانے، پارس کرنے اور فارمیٹ کرنے کے لئے تفصیلی ترتیب کے فراہم کرتا ہے۔
1.2 انسٹالیشن گائیڈ
1. Go ورژن >= 1.16 کے لئے انسٹالیشن
Go ورژن 1.16 یا اس سے زیادہ کے لئے کاربن پیکیج کو انسٹال کرنے کے لئے درج زیل کمانڈ استعمال کریں:
go get -u github.com/golang-module/carbon/v2
پھر اس پیکیج کو آپ کے Go فائل میں لاۓں:
import "github.com/golang-module/carbon/v2"
2. Go ورژن < 1.16 کے لئے انسٹالیشن
Go کے پرانے ورژنس کے لئے، آپ کاربن کو درج زیل کمانڈ کا استعمال کرکے انسٹال کر سکتے ہیں:
go get -u github.com/golang-module/carbon
اور اس کو اسی طرح سے لا سکتے ہیں:
import "github.com/golang-module/carbon"
نوٹ کریں کہ v1 کو فعال طور پر اپ ڈیٹ نہیں کیا جاتا ہے، لیکن اس کو باگ مرمی کے لئے برقرار کیا جائے گا۔
1.3 اپنے پہلے کاربن پروجیکٹ کی تشکیل دینا
کاربن کی بنیادی تشکیل: کاربن انسٹال ہونے کے بعد، آپ بس ایک نئے کاربن مثال کے بنانے کے زریعے اس کا استعمال شروع کر سکتے ہیں۔ آپ اس کو اپنے پروجیکٹ کی ضروریات کے مطابق ڈیفالٹ گلوبل لے آؤٹ، ٹائم زون، اور لوکیل ترتیب سیٹ کرکے کاربن کو اپنی پسند کے مطابق دست کر سکتے ہیں۔
گلوبل ڈیفالٹ لے آؤٹ، ٹائم زون، اور لوکیل سیٹ کرنا:
carbon.SetDefault(carbon.Default{
Layout: carbon.RFC3339Layout,
Timezone: carbon.PRC,
Locale: "en",
})
اگر صریح طور پر سیٹ نہیں کیا گیا ہو، تو کاربن کے لئے ان کی ڈیفالٹ سیٹنگس ہیں - Layout: "2006-01-02 15:04:05"
, Timezone: Local
, Locale: "en"
.
2: بنیادی کاربن کے عمل
2.1 موجودہ وقت کے ساتھ کام کرنا
موجودہ تاریخ و وقت حاصل کرنا
موجودہ تاریخ و وقت کو حاصل کرنا بہت سی ایپلیکیشنز میں ایک بنیادی عمل ہے۔ کاربن کے ساتھ، آپ carbon.Now()
میتھڈ کو بُلاکر موجودہ تاریخ و وقت کا انسٹنس حاصل کر سکتے ہیں۔ چلیں دیکھیں کے کیسے موجودہ تاریخ و وقت کو حاصل کرنا ہے:
// کاربن انسٹنس کے طور پر موجودہ تاریخ و وقت حاصل کر تا ہے
now := carbon.Now()
fmt.Println("موجودہ تاریخ و وقت:", now)
آج، کلک اور کل کا دکھانا
کاربن نے آج، کل، اور کل کے لئے تازہ ترین تاریخ کے ساتھ کام کرنے کا ایک شائقین طریقہ فراہم کیا ہے۔ آپ carbon.Now()
، carbon.Yesterday()
، اور carbon.Tomorrow()
میتھڈ کا استعمال کرکے آج، کل، اور کل کی تاریخ کے پیشنظر تاثرات حاصل کرسکتے ہیں:
// آج کی تاریخ و وقت
today := carbon.Now()
fmt.Println("آج:", today.ToDateTimeString())
// کل کی تاریخ و وقت
yesterday := carbon.Yesterday()
fmt.Println("کل:", yesterday.ToDateTimeString())
// کل کی تاریخ و وقت
tomorrow := carbon.Tomorrow()
fmt.Println("کل:", tomorrow.ToDateTimeString())
یہ میتھڈس بغیر ہاتھی آپس میں ماتھائیکل کے عمل کے ساتھ عوام میں استعمال ہونے والے تاریخ کے حوالوں کے ساتھ ایک مختصر طریقہ فراہم کرتے ہیں۔
موجودہ وقت کی فارمیٹنگ اور نمائش
کاربن نے تاریخ و وقت کو مختلف طریقوں سے فارمیٹ اور دکھانے کے لئے مختلف طریقے فراہم کیے ہیں۔ چاہے آپ کو ISO8601، ایک کسٹم فارمیٹ، یا مقامی ورژن کی ضرورت ہو، کاربن کے پاس مناسب میتھڈس ہیں:
یہاں آپ موجودہ تاریخ و وقت کو مختلف طریقوں میں فارمیٹ کرنے کی وضاحت حاصل کرسکتے ہیں:
// معمولی تاریخ و وقت کا ظاہر کرنا
fmt.Println("RFC3339:", now.ToRFC3339String())
fmt.Println("ISO8601:", now.ToIso8601String())
// کسٹم تاریخ کا فارمیٹ
fmt.Println("Custom:", now.Format("Monday, 02-Jan-06 15:04:05 MST"))
// پہلے ہی تدوین کئے گئے لے آؤٹس کا استعمال کرنا
fmt.Println("ANSIC format:", now.ToAnsicString())
fmt.Println("UnixDate format:", now.ToUnixDateString())
fmt.Println("RubyDate format:", now.ToRubyDateString())
fmt.Println("Kitchen format:", now.ToKitchenString())
// کسٹم پیٹرن کے لئے، Format میتھڈ کا استعمال کریں
fmt.Println("Custom pattern:", now.Format("2006-01-02 3:04 PM"))
2.2 کاربن انسٹنسز کی تشکیل کرنا
ٹائم اسٹمپس سے انسٹنسز تخلیق کرنا
Go میں ٹائم اسٹمپس کا ساتھ دینا عام ہوتا ہے، اور Carbon پیشہ ورانہ تراکیب فراہم کرتا ہے تاکہ ان کا سامنا کیا جا سکے۔ ایک ٹائم اسٹمپ کھچھک کر جو ایک واقعے کا وقت دکھاتا ہے، عام طور پر تاریخ اور دن کا وقت دیتا ہے، کبھی کبھار ایک سیکنڈ کے چھوٹے فریکشن تک درست ہوتا ہے۔
ایک یونکس ٹائم اسٹمپ سے Carbon کا انسٹنس تخلیق کرنے کے لئے، جو کہ یونکس ایپاک (1جنوری، 1970، یو ٹی سی) کے بعد گزرے گئے سیکنڈز کی تعداد کا پیشگی دورانیے کو ظاہر کرتا ہے، آپ مختلف دقت کے سطح استعمال کرسکتے ہیں:
// دوسری ٹائم اسٹیمپ کے ساتھ ایک کاربن انسٹنس تخلیق کریں
c1 := carbon.CreateFromTimestamp(1596604455)
fmt.Println(c1.ToString()) // اوٹپٹ: "202-08-05 13:14:15 +080 CST"
// زیادہ دقت کے لئے (ملی سیکنڈ)، `CreateFromTimestampMilli` استعمال کریں
c2 := carbon.CreateFromTimestampMilli(1596604455999)
fmt.Println(c2.ToString()) // اوٹپٹ: "202-08-05 13:14:15.999 +080 CST"
// مائیکروسیکنڈ کے لئے، `CreateFromTimestampMicro` استعمال کریں
c3 := carbon.CreateFromTimestampMicro(1596604455999999)
fmt.Println(c3.ToString()) // اوٹپٹ: "202-08-05 13:14:15.999999 +080 CST"
// اور نینوسیکنڈ کے لئے، `CreateFromTimestampNano` استعمال کریں
c4 := carbon.CreateFromTimestampNano(1596604455999999999)
fmt.Println(c4.ToString()) // اوٹپٹ: "202-08-05 13:14:15.999999999 +080 CST"
تاریخ اور وقت کے انفرادی اجراءت سے انسٹنسز تخلیق کرنا
اگر آپ کی پاس تاریخ کے انفرادی اجزاء ہیں، مثلاً سال، مہینہ اور دن یا وقت کے اجزاء، جیسے گھنٹہ، منٹ، اور سیکنڈ، تو Carbon انہیں بھی ہینڈل کرسکتا ہے۔
// دی گئی تاریخ سے ایک کاربن انسٹنس تخلیق کریں
date := carbon.CreateFromDate(2022, 12, 25)
fmt.Println(date.ToDateString()) // اوٹپٹ: "2022-12-25"
// دی گئی وقت سے ایک کاربن انسٹنس تخلیق کریں
time := carbon.CreateFromTime(23, 59, 59)
fmt.Println(time.ToTimeString()) // اوٹپٹ: "23:59:59"
// تاریخ اور وقت دونوں سے کاربن انسٹنس تخلیق کریں
dateTime := carbon.CreateFromDateTime(2022, 12, 25, 23, 59, 59)
fmt.Println(dateTime.ToDateTimeString()) // اوٹپٹ: "2022-12-25 23:59:59"
2.3 تاریخ وقت کی سٹرنگ کا پارسنگ
تاریخ وقت کو سٹرنگس کی صورت میں ہینڈل کرنا عام منظر ہے۔ Carbon اسے کاربن انسٹنس میں پارس کرنا آسان بناتا ہے۔
carbon.Parse
کا استعمال استاندارد وقت کے فارمیٹ کے لئے:
// سٹرنگ کو تاریخ اور وقت کے ساتھ پارس کریں
c := carbon.Parse("202-08-05 13:14:15", carbon.PRC)
if c.Error != nil {
fmt.Printf("Error: %v", c.Error)
} else {
fmt.Println(c.ToDateTimeString()) // اوٹپٹ: "202-08-05 13:14:15"
}
// ایک RFC3339 فارمیٹ کی سٹرنگ کو پارس کرنا
rfc3339 := carbon.Parse("202-08-05T13:14:15+08:00")
fmt.Println(rfc3339.ToString()) // اوٹپٹ: "202-08-05 13:14:15 +080 CST"
کسٹم فارمیٹس کے لیے ParseByFormat
اور ParseByLayout
آپ ایسی سٹرنگس کو بھی پارس کرسکتے ہیں جو کہ carbon.Parse
کے ذریعے براہ کرم نہیں ہیں۔
// فارمیٹ کے ذریعے ایک time string کو ایک کاربن انسٹنس میں پارس کریں
byFormat := carbon.ParseByFormat("202|08|05 13|14|15", "2006|01|02 15|04|05")
fmt.Println(byFormat.ToDateTimeString()) // اوٹپٹ: "202-08-05 13:14:15"
// لے آؤٹ کے ذریعے ایک time string کو کاربن انسٹنس میں پارس کریں
byLayout := carbon.ParseByLayout("202|08|05", "2006|01|02")
fmt.Println(byLayout.ToDateString()) // اوٹپٹ: "202-08-05"
خطاوں کا سامنا
ہمیشہ یہ چیک کریں کہ Error
فیلڈ کو تصدیق کیا گیا ہے کہ پارسنگ کامیاب ہوا ہے:
invalidDate := carbon.Parse("یہ تاریخ نہیں ہے", carbon.PRC)
if invalidDate.IsInvalid() {
fmt.Println("تاریخ پارس کرنے میں خرابی:", invalidDate.Error)
}
یاد رہے، تاریخ اور وقت کے ساتھ کام کرنے کا مضبوط خطا کار ژو کرنا غیر متوقع نتائج یا نظام کی خرابیوں سے بچنے کا اہم حصہ ہے۔