Toolyard

ইউনিক্স সময়-ছাপ কী?

এটি কী

ইউনিক্স সময়-ছাপ হলো 1 জানুয়ারি 1970-এ 00:00:00 UTC থেকে কত সেকেন্ড পার হয়েছে তার সংখ্যা, আর ওই মুহূর্তটিকে ইউনিক্স এপক বলে। কোনো একটি নির্দিষ্ট মুহূর্তে পৃথিবীর সবখানেই তা একই সংখ্যা, সেই কারণেই API, লগ আর ডেটাবেস তা ব্যবহার করে। যেমন, 1700000000 মানে 14 নভেম্বর 2023, 22:13:20 UTC।

সেকেন্ড না মিলিসেকেন্ড?

সেকেন্ডে একটি সময়-ছাপে আজকের দিনে 10 অঙ্ক থাকে। জাভাস্ক্রিপ্ট, জাভা আর অনেক API মিলিসেকেন্ড ব্যবহার করে, যাতে 13 অঙ্ক থাকে। একটি তারিখ 1970 সালে কিংবা হাজার বছর ভবিষ্যতে গিয়ে পড়লে একক সম্ভবত ভুল।

অনলাইনে তা বদলে নিন

তা ইউনিক্স সময়-ছাপ রূপান্তরকারী-তে সেঁটে দিন। সে সেকেন্ড না মিলিসেকেন্ড তা ধরে নিয়ে তারিখটি UTC আর আপনার নিজের সময় অঞ্চলে দেখায়।

কোডে আর স্প্রেডশিটে

  • জাভাস্ক্রিপ্ট: new Date(1700000000 * 1000)
  • পাইথন: datetime.fromtimestamp(1700000000, tz=timezone.utc)
  • এক্সেল বা গুগল শিটস: =A1/86400+DATE(1970,1,1), তারপর ঘরটি তারিখ হিসেবে সাজান। ফলটি UTC-তে।
  • ম্যাক বা লিনাক্সের টার্মিনালে, এখনকার সময়: date +%s

2038 সালের সমস্যা

যে ব্যবস্থাগুলো সময়-ছাপটিকে চিহ্নযুক্ত 32-বিট সংখ্যা হিসেবে জমা রাখে, সেগুলো 19 জানুয়ারি 2038-এ 03:14:07 UTC-তে ফুরিয়ে যাবে। আজকের ব্যবস্থাগুলো 64 বিট ব্যবহার করে, যা শত কোটি বছর টেকে।

কষে দেখানো উদাহরণ

  • 0 হলো 1970-র 1 জানুয়ারি, 00:00:00 UTC।
  • 86400 হলো ঠিক একদিন পরে, 1970-র 2 জানুয়ারি।
  • -86400 হলো একদিন আগে, 1969-র 31 ডিসেম্বর। ঋণাত্মক সময়ছাপ 1970-র আগের তারিখ।
  • 2000000000 হলো 2033-র 18 মে, 03:33:20 UTC।

চেনা ভুল

  • সময়ছাপের একটি সময় অঞ্চল আছে ভাবা। তার নেই। 1700000000 সবখানেই একটিই মুহূর্ত; কেবল তা যেভাবে দেখানো হয় তাই সময় অঞ্চলের সঙ্গে বদলায়।
  • স্থানীয় সময়কে UTC ধরে একটি সময়ছাপ বানানো। ফলটি আপনার UTC সরণে সরে যায়, প্রায়ই ঠিক কয়েক ঘণ্টা। বদলে নেওয়ার পরে একটি জানা তারিখ দেখে নিন।
  • জাভাস্ক্রিপ্টে মাস। new Date(2026, 0, 15) হলো 15 জানুয়ারি: মাস গোনা হয় 0 থেকে।
  • লিপ সেকেন্ড। ইউনিক্সের সময় প্রতিটি দিনকেই ঠিক 86,400 সেকেন্ড ধরে আর লিপ সেকেন্ড অগ্রাহ্য করে, তাই তা পেরিয়ে যাওয়া প্রতিটি সেকেন্ডের একটি গোনা নয়।

এই গাইডের টুল

আরও গাইড