Unix Time کی ابتدا
Epoch timestamp—اکثر Unix time، POSIX time یا صرف epoch—سمجھنے کے لیے 1970 کی دہائی کے اوائل Unix آپریٹنگ سسٹم کی ابتدا دیکھنی ہوگی۔ Unix time وقت کو سیکنڈز کے چلتے ٹوٹل کے طور پر ٹریک کرتا ہے۔ خاص طور پر، Unix epoch سے گزرے سیکنڈز کی تعداد۔ Epoch خود 1 جنوری 1970 بروز جمعرات 00:00:00 Coordinated Universal Time (UTC) کے طور پر بیان ہے۔
جب Ken Thompson اور Dennis Ritchie Bell Labs میں Unix کے پہلے ورژنز بنا رہے تھے، کمپیوٹرز کے لیے تاریخیں اور اوقات نمائندگی اور محفوظ کرنے کا سادہ، موثر طریقہ چاہیے تھا۔ انسانی پڑھنے کے قابل تاریخیں (جیسے '29 جولائی 2026') کمپیوٹرز کے لیے پروسیس کرنا انتہائی پیچیدہ ہیں۔ غیر منظم مہینے (28، 29، 30 یا 31 دن)، leap years، ٹائم زونز اور daylight saving ٹرانزیشنز۔ وقت کو واحد، مسلسل بڑھتے integer کے طور پر نمائندگی کر کے Unix ڈویلپرز نے عالمی، غیر مبہم ٹائم معیار بنایا جو آسانی سے محفوظ، موازنہ اور ریاضیاتی طور پر ہیرا پھیری ہو سکے۔
ڈویلپرز آج Epoch Timestamps کیوں استعمال کرتے ہیں
دہائیوں بعد بھی epoch time جدید کمپیوٹنگ انفراسٹرکچر کی ریڑھ ہے۔ عالمی اپنانے کی وجوہات:
- سادگی اور کارکردگی: 32-bit یا 64-bit integer فارمیٹڈ تاریخ سٹرنگ سے نمایاں کم ڈسک اور میموری لیتی ہے۔ اربوں ریکارڈز والے ڈیٹا بیسز میں فی قطار چند بائٹس بچانا بڑی اسٹوریج لاگت کمی اور بہتر انڈیکس پرفارمنس بناتا ہے۔
- ٹائم زون سے آزاد: Epoch timestamp فطری طور پر UTC سے جڑا ہے۔ صارف کہاں ہے پرواہ نہیں۔ ٹوکیو کا سرور نیویارک کلائنٹ سے بات کرے تو epoch integer ٹائم زون کنفیوژن روکتا ہے۔ کلائنٹ وصول پر integer لوکل ٹائم زون میں بدل دیتا ہے۔
- آسان ریاضیاتی آپریشنز: دو واقعات کے درمیان دورانیہ ایک timestamp دوسرے سے minus کرنا جتنا سادہ۔ دو لاگ اندراجات کے درمیان سیکنڈز
timestamp2 - timestamp1فوری درست جواب دیتا ہے، پیچیدہ تاریخ پارسنگ کے بغیر۔ - ڈیٹا بیس ترتیب: integer کالم سے زمانی ترتیب متنی timestamp سٹرنگز پارس اور sort کرنے سے کہیں تیز۔
Leap Seconds کا اثر
Unix time کی ایک تکنیکی نزاکت leap seconds کا ہینڈلنگ ہے۔ Leap second ایک سیکنڈ کی ایڈجسٹمنٹ ہے جو کبھی کبھار UTC پر لگتی ہے تاکہ دن کا وقت اوسط شمسی وقت کے قریب رہے۔ دلچسپ بات: Unix time leap seconds کا حساب نہیں کرتا۔ Unix time سسٹم میں ہر دن بالکل 86,400 سیکنڈ لمبا سمجھا جاتا ہے۔ Leap second آئے تو Unix گھڑی وہی سیکنڈ دو بار دہراتی ہے۔ یہ جان بوجھ کر ڈیزائن timestamps کو غیر پیش گوئی سے بچاتا ہے، اگرچہ مطلب Unix time 1970 سے فزیکل گزرے وقت کی سخت لکیری پیمائش نہیں۔ زیادہ تر سافٹ ویئر انجینئرنگ ایپس کے لیے یہ معمولی فرق مکمل قابلِ قبول اور ہر تاریخی leap second ٹریک کرنے کی پیچیدگی سے بہتر ہے۔