Unix টাইমস্ট্যাম্প থেকে তারিখ কনভার্টার

Unix টাইমস্ট্যাম্পকে পড়তে-সুবিধাজনক তারিখ ও সময়ে রূপান্তর করুন — অথবা যেকোনো তারিখকে আবার Unix টাইমস্ট্যাম্পে রূপান্তর করুন। সেকেন্ড ও মিলিসেকেন্ড সমর্থিত।

এই টুলটি শেয়ার করুন

আপনার সাইটে এম্বেড করুন

ইউনিক্স টাইমস্ট্যাম্প কী?

ইউনিক্স টাইমস্ট্যাম্প (Unix timestamp), যাকে Unix time বা POSIX time-ও বলা হয়, হলো 1970-01-01 00:00:00 UTC থেকে অতিবাহিত সেকেন্ডের সংখ্যা—যে সময়টিকে Unix epoch বলা হয়। কম্পিউটিং-এ এটি বহুল ব্যবহৃত একটি মান, কারণ এটি সময়ের একটি নির্দিষ্ট মুহূর্তকে একটিমাত্র পূর্ণসংখ্যা হিসেবে প্রকাশ করে, ফলে সংরক্ষণ, তুলনা, এবং গাণিতিক হিসাব সহজ হয়।

JavaScript অভ্যন্তরীণভাবে মিলিসেকেন্ডে কাজ করে, তাই Date.now() ইউনিক্স টাইমস্ট্যাম্পকে 1000 দিয়ে গুণ করা মান (মিলিসেকেন্ড) ফেরত দেয়। অনেক API, ডাটাবেস, এবং ব্যাকএন্ড সিস্টেম সেকেন্ড ব্যবহার করে। এই টুল দুটি ফরম্যাটই গ্রহণ করে এবং আপনি যে সংখ্যা দেন তার আকার দেখে স্বয়ংক্রিয়ভাবে সেকেন্ড না মিলিসেকেন্ড তা শনাক্ত করে।

উল্লেখযোগ্য ইউনিক্স টাইমস্ট্যাম্প

TimestampDate (UTC)Note
01970-01-01 00:00:00Unix epoch
1,000,000,0002001-09-09 01:46:401 billion seconds
2,000,000,0002033-05-18 03:33:202 billion seconds
2,147,483,6472038-01-19 03:14:07Year 2038 problem (max 32-bit)

কেন 1970?

১ জানুয়ারি, ১৯৭০-কে ইউনিক্স epoch হিসেবে বেছে নেওয়া হয়েছিল আংশিকভাবে প্রচলিত রীতি এবং আংশিকভাবে ব্যবহারিক সীমাবদ্ধতার কারণে। Bell Labs-এ ১৯৬০-এর দশকের শেষভাগ ও ১৯৭০-এর দশকের শুরুতে Unix তৈরি হয়। ডেভেলপারদের এমন একটি সাম্প্রতিক, “গোল” শুরু-তারিখ দরকার ছিল যাতে সময়কে প্রকাশ করা সহজ হয়। ১ জানুয়ারি, ১৯৭০ যথেষ্ট সাম্প্রতিক ছিল এবং এর কোনো বিশেষ প্রযুক্তিগত তাৎপর্য ছিল না — এটি কেবল একটি সুবিধাজনক অ্যাঙ্কর পয়েন্ট।

অন্যান্য সিস্টেমে ভিন্ন epoch তারিখও আছে: Windows FILETIME epoch হলো ১ জানুয়ারি, ১৬০১; GPS time শুরু হয় ৬ জানুয়ারি, ১৯৮০; NTP epoch হলো ১ জানুয়ারি, ১৯০০। সিস্টেমগুলোর মধ্যে রূপান্তর করার সময় প্রতিটি সিস্টেমের epoch জানা গুরুত্বপূর্ণ।

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

মূল ইউনিক্স টাইমস্ট্যাম্প সেকেন্ডে। বেশিরভাগ সার্ভার-সাইড ভাষা এবং সিস্টেম (Unix shell, Python-এর time.time(), PHP-এর time(), বেশিরভাগ ডাটাবেস) সেকেন্ড ব্যবহার করে। JavaScript-এর Date.now() এবং new Date().getTime() মিলিসেকেন্ড ফেরত দেয়। JavaScript ফ্রন্টএন্ড যখন ব্যাকএন্ড API-এর সাথে যোগাযোগ করে, তখন এই অমিলটি বাগের একটি সাধারণ উৎস।

সেকেন্ডে একটি ইউনিক্স টাইমস্ট্যাম্প বর্তমানে ১০-অংকের সংখ্যা (২০২৩ অনুযায়ী প্রায় 1,700,000,000-এর মতো)। মিলিসেকেন্ড টাইমস্ট্যাম্প ১৩-অংকের সংখ্যা। ক্যালকুলেটরটি অংকের সংখ্যা দেখে আপনি কোন ফরম্যাট দিয়েছেন তা শনাক্ত করে এবং সেই অনুযায়ী রূপান্তর করে।

Year 2038 সমস্যা

যেসব সিস্টেম ইউনিক্স টাইমস্ট্যাম্পকে signed 32-bit integer হিসেবে সংরক্ষণ করে, তারা epoch-এর পর 2,147,483,647 সেকেন্ড পর্যন্তই তারিখ প্রকাশ করতে পারে — যা হলো ১৯ জানুয়ারি, ২০৩৮ তারিখে 03:14:07 UTC। সেই মুহূর্তের পরে একটি 32-bit signed integer overflow হয়ে বড় একটি ঋণাত্মক সংখ্যায় পরিণত হয়, যা ১৯০১ সালের একটি তারিখকে নির্দেশ করে।

একে কখনও কখনও "Y2K38" সমস্যা বা Unix Millennium Bug বলা হয়। আধুনিক 64-bit সিস্টেমে এই সমস্যা নেই, কারণ signed 64-bit integer প্রায় 292 বিলিয়ন বছর পর্যন্ত টাইমস্ট্যাম্প প্রকাশ করতে পারে। তবে embedded সিস্টেম, লিগ্যাসি ডাটাবেস, এবং পুরনো 32-bit সফটওয়্যার এখনও ঝুঁকিপূর্ণ হতে পারে। টেলিকম, ব্যাংকিং, এবং ইন্ডাস্ট্রিয়াল কন্ট্রোলসহ অনেক শিল্পখাতে এটি মোকাবিলায় চলমান মাইগ্রেশন প্রচেষ্টা আছে।

বর্তমান ইউনিক্স টাইমস্ট্যাম্প কীভাবে পাওয়া যায়

Language / environmentCommand
JavaScriptMath.floor(Date.now() / 1000)
Pythonimport time; int(time.time())
PHPtime()
Bashdate +%s
SQL (PostgreSQL)EXTRACT(EPOCH FROM NOW())::int
SQL (MySQL)UNIX_TIMESTAMP()
Gotime.Now().Unix()
RustSystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()

ব্যবহারিক প্রয়োগ

API ডেভেলপমেন্ট: REST API-গুলোতে created_at, updated_at, এবং টোকেনের মেয়াদ শেষ হওয়ার (expiry) ফিল্ডে ইউনিক্স টাইমস্ট্যাম্প সাধারণভাবে ব্যবহার করা হয়। টাইমস্ট্যাম্প টাইমজোন-নিরপেক্ষ এবং দ্ব্যর্থহীন — ফরম্যাট করা তারিখ-স্ট্রিংয়ের মতো নয়, যেগুলো লোকেল ও ফরম্যাটিং রীতির ওপর নির্ভর করে।

Token expiry: JWT (JSON Web Tokens) exp (expiry) এবং iat (issued at) ক্লেইমে ইউনিক্স টাইমস্ট্যাম্প ব্যবহার করে। বর্তমান টাইমস্ট্যাম্প exp মানকে ছাড়িয়ে গেলে টোকেনের মেয়াদ শেষ হয়। মেয়াদ গণনা করতে — যেমন "এই টোকেন ২৪ ঘণ্টায় শেষ হবে" — বর্তমান টাইমস্ট্যাম্পের সাথে 86,400 সেকেন্ড যোগ করতে হয়।

Cache TTL: ক্যাশের মেয়াদ শেষ হওয়ার সময় প্রায়ই ইউনিক্স টাইমস্ট্যাম্প হিসেবে বা এখন থেকে কত সেকেন্ড পর হিসেবে সেট করা হয়। ক্যাশ-সংক্রান্ত সমস্যা ডিবাগ করতে অনেক সময় সংরক্ষিত expiry টাইমস্ট্যাম্পকে মানুষের পড়ার মতো তারিখে রূপান্তর করতে হয়।

Log analysis: সার্ভার লগে প্রায়ই ইউনিক্স টাইমস্ট্যাম্প থাকে। সেগুলোকে পাঠযোগ্য তারিখে রূপান্তর করাই বাস্তব ঘটনাগুলোর সাথে লগ মিলানোর প্রথম ধাপ।

Database storage: ফরম্যাট করা স্ট্রিংয়ের বদলে পূর্ণসংখ্যা হিসেবে টাইমস্ট্যাম্প সংরক্ষণ করলে টাইমজোন কনভার্সনের বাগ এড়ানো যায় এবং sort, range query, এবং গাণিতিক হিসাব সহজ হয়। "গত ৭ দিনের সব রেকর্ড" বের করার কুয়েরি হয়ে যায় WHERE created_at > (NOW_UNIX - 604800)