یونکس ٹائم اسٹیمپ کنورٹر
ٹائم اسٹیمپ تا تاریخ
سیکنڈز یا ملی سیکنڈز خود بخود ڈیٹیکٹ ہو جاتے ہیں۔
تاریخ سے ٹائم سٹیمپ
ایک تاریخ اور وقت منتخب کریں تاکہ اسے یونکس ٹائم سٹیمپ میں تبدیل کیا جا سکے۔
یونکس ایپک سے سیکنڈز (00:00:00 UTC 1 جنوری 1970 کو)
سیکنڈز یا ملی سیکنڈز خود بخود ڈیٹیکٹ ہو جاتے ہیں۔
ایک تاریخ اور وقت منتخب کریں تاکہ اسے یونکس ٹائم سٹیمپ میں تبدیل کیا جا سکے۔
ایک ہی موجودہ لمحہ کئی عام فارمیٹس میں ظاہر کیا گیا، براہِ راست اپ ڈیٹ ہوتا ہے:
| فارمیٹ | موجودہ قدر |
|---|---|
| یونکس ٹائم اسٹیمپ (سیکنڈ) | — |
| یونیکس ٹائم اسٹیمپ (ملی سیکنڈ) | — |
| ISO 8601 (UTC) | — |
| RFC 2822 (UTC) | — |
یونکس وقت (جسے ایپک وقت، POSIX وقت، یا یونکس ٹائم اسٹیمپ بھی کہا جاتا ہے) ایک نظام ہے جو وقت کے ایک نقطہ کو بیان کرتا ہے۔ یہ سیکنڈز کی تعداد ہے جو گزر چکی ہے اس سے پہلے کہ یونکس ایپک شروع ہوا، جسے جمعرات، 1 جنوری 1970 کو 00:00:00 UTC کے طور پر تعریف کیا گیا ہے۔ یہ یونکس جیسی آپریٹنگ سسٹمز اور دیگر بہت سے کمپیوٹنگ سسٹمز میں وسیع پیمانے پر استعمال ہوتا ہے۔
یونکس وقت کا اہم فائدہ اس کی سادگی ہے۔ یہ وقت کو ایک واحد، عالمی سطح پر سمجھا جانے والا عدد کے طور پر ظاہر کرتا ہے جو مسلسل بڑھتا رہتا ہے۔ اس سے ٹائم اسٹیمپ کو ذخیرہ کرنا، موازنہ کرنا، اور حساب کتاب کرنا بہت آسان ہو جاتا ہے بغیر وقت کے زون، ڈے لائٹ سیونگ ٹائم، یا مختلف کیلنڈر سسٹمز کی فکر کیے۔ مثال کے طور پر، دو واقعات کے درمیان مدت معلوم کرنے کے لیے، آپ صرف ان کے یونکس ٹائم اسٹیمپ کو منفی کریں۔
جبکہ یہ خام عدد کمپیوٹرز کے لیے بہترین ہے، یہ انسانوں کے لیے زیادہ دوستانہ نہیں ہے۔ اس فرق کو کم کرنے کے لیے، ڈویلپرز اور ٹیک کے شیدائی ایک ٹول استعمال کرتے ہیں جسے ایپک کنورٹر کہا جاتا ہے۔ آپ اسے کسی بھی ٹائم اسٹیمپ کو انسانی قابل پڑھائی تاریخ میں فوراً تبدیل کرنے کے لیے استعمال کر سکتے ہیں، یا کسی مخصوص تاریخ کے لیے ٹائم اسٹیمپ تلاش کر کے اس کا الٹ بھی کر سکتے ہیں۔
یونکس وقت سے متعلق ایک معروف مسئلہ ہے جسے "2038 کا مسئلہ" کہا جاتا ہے۔ یہ Y2K مسئلے کی نوعیت سے ملتا جلتا ہے۔ بہت سے ابتدائی کمپیوٹر سسٹمز کو یونکس ٹائم کو ایک 32-بٹ دستخط شدہ عدد کے طور پر ذخیرہ کرنے کے لیے ڈیزائن کیا گیا تھا۔ ایک دستخط شدہ 32-بٹ عدد منفی 2,147,483,648 سے مثبت 2,147,483,647 تک کی قیمتیں ظاہر کر سکتا ہے۔
زیادہ سے زیادہ قیمت، 2,147,483,647، 19 جنوری 2038 کو 03:14:07 UTC پر پہنچ جائے گی۔ اگلے سیکنڈ پر، عدد اوور فلو ہو جائے گا اور اپنی سب سے منفی قیمت پر لوٹ جائے گا، جسے سسٹمز 1901 میں ایک تاریخ کے طور پر سمجھیں گے۔ یہ پرانی سافٹ ویئر میں وسیع پیمانے پر ناکامی کا سبب بن سکتا ہے جو 32-بٹ وقت کی نمائندگی پر انحصار کرتا ہے۔
حل یہ ہے کہ ایک 64-بٹ عدد استعمال کیا جائے تاکہ ٹائم اسٹیمپ کو ذخیرہ کیا جا سکے۔ ایک 64-بٹ عدد کی زیادہ سے زیادہ قیمت اتنی بڑی ہے کہ یہ تقریباً 292 ارب سال تک اوور فلو نہیں ہوگا، جو مستقبل کے لیے اس مسئلے کا مؤثر حل ہے۔ زیادہ تر جدید آپریٹنگ سسٹمز اور سافٹ ویئر پہلے ہی 64-بٹ وقت کی نمائندگی کی طرف منتقل ہو چکے ہیں۔
ایک اہم تکنیکی تفصیل یہ ہے کہ یونکس وقت لیپ سیکنڈز کا حساب نہیں رکھتا۔ جب کہ UTC (متحدہ عالمی وقت) کبھی کبھار لیپ سیکنڈ شامل کرتا ہے تاکہ ہمارے گھڑیاں زمین کے گردش کے ساتھ ہم آہنگ رہیں، یونکس ٹائم انہیں نظر انداز کرتا ہے اور خطی طور پر شمار کرتا رہتا ہے۔
اس کا مطلب ہے کہ یونکس وقت UTC کی صحیح نمائندگی نہیں ہے۔ بلکہ، اسے زیادہ درست طور پر سیکنڈز کی ایک خطی گنتی کے طور پر بیان کیا جاتا ہے۔ جب لیپ سیکنڈ آتا ہے، تو یونکس وقت کبھی کبھار ایک سیکنڈ کو دہراتا ہے تاکہ ہم آہنگی برقرار رہے۔ یہ نکتہ سائنسی اور اعلیٰ درستگی والی ایپلی کیشنز کے لیے اہم ہے، لیکن زیادہ تر عمومی کمپیوٹنگ کے لیے یہ فرق معمولی ہے۔
created_at, updated_at)۔
یونکس ایپوک یونکس سسٹمز کے لیے وقت کے آغاز کا لمحہ ہے: یکم جنوری 1970 کو 00:00:00 UTC۔ یونکس ٹائم سٹیمپ صرف اس لمحے سے گزرے ہوئے سیکنڈز کی تعداد ہے۔
تاریخ کا انتخاب یونکس کے ابتدائی ڈویلپرز نے ایک آسان اور گول شروعاتی نقطہ کے طور پر کیا تھا، جو اس وقت کے قریب تھا جب یہ نظام 1970 کی دہائی کے اوائل میں تشکیل دیا گیا تھا۔ تب سے یہ معیاری حوالہ نقطہ رہا ہے۔
Unix time کو UTC میں متعین کردہ ایک epoch سے شمار کیا جاتا ہے اور یہ ٹائم زون سے آزاد ہے، لہذا ایک ہی timestamp ہر جگہ ایک ہی لمحے کی نشاندہی کرتا ہے۔ چونکہ یہ leap seconds کو نظر انداز کرتا ہے، اس لیے اسے UTC کی مکمل نمائندگی کے بجائے سیکنڈوں کی لکیری گنتی کے طور پر بیان کرنا بہتر ہے۔
یونکس ٹائم سٹیمپ ایک معیاری طریقے سے ایپوک (epoch) سے گزرے ہوئے مکمل سیکنڈز کو شمار کرتا ہے، جو موجودہ تاریخوں کے لیے 10 ہندسوں پر مشتمل ہوتا ہے۔ بہت سے سسٹمز، بشمول جاوااسکرپٹ، اس کے بجائے ملی سیکنڈز شمار کرتے ہیں، جس کی وجہ سے قدر 1,000 گنا بڑھ کر 13 ہندسوں پر مشتمل ہوتی ہے۔
وہ نظام جو ٹائم سٹیمپ کو 32 بٹ کے دستخط شدہ عدد میں محفوظ کرتے ہیں، وہ صرف 19 جنوری 2038 کو 03:14:07 یو ٹی سی تک گن سکتے ہیں، جس کے بعد قدر اوور فلو ہو جاتی ہے اور 1901 کی تاریخ کے طور پر غلط پڑھی جاتی ہے۔ اس کا حل یہ ہے کہ ٹائم سٹیمپ کو 64 بٹ کے عدد میں محفوظ کیا جائے۔