সেকেন্ড বা মিলিসেকেন্ড
তারিখ নিয়ে কাজ করার সময় সবচেয়ে সাধারণ ভুল হলো এই দুটিকে গুলিয়ে ফেলা। Unix টাইমস্ট্যাম্প 1970-01-01 UTC থেকে সেকেন্ড গণনা করে; JavaScript-এর Date.now() মিলিসেকেন্ড গণনা করে। 1000 দিয়ে গুণ না করে Unix টাইমস্ট্যাম্পকে সরাসরি Date কনস্ট্রাক্টরে দিলে আপনি জানুয়ারি 1970-এ পৌঁছাবেন। সাধারণ নিয়ম হিসাবে, 10-সংখ্যার সংখ্যা সেকেন্ড এবং 13-সংখ্যার সংখ্যা মিলিসেকেন্ড, যা এখানে স্বয়ংক্রিয় শনাক্তকরণ ঠিক এভাবেই সিদ্ধান্ত নেয়।
স্ট্যান্ডার্ডগুলো এবং এরা কীভাবে আলাদা
- ISO 8601 হলো ভিত্তি স্ট্যান্ডার্ড:
2024-01-15T10:30:00.000Z। T তারিখকে সময় থেকে আলাদা করে এবং Z মানে UTC।
- RFC 3339 হলো ইন্টারনেট প্রোটোকলের লক্ষ্যে ISO 8601-এর আরও কঠোর প্রোফাইল। এটির জন্য একটি স্পষ্ট অফসেট প্রয়োজন, তাই এটি
Z-এর পরিবর্তে +00:00 লেখে।
- ISO 9075 হলো SQL স্ট্যান্ডার্ড ফর্ম,
2024-01-15 10:30:00 — T-এর পরিবর্তে একটি স্পেস এবং কোনো টাইমজোন নেই। বেশিরভাগ ডেটাবেস এটিই প্রিন্ট করে।
- RFC 7231 হলো HTTP তারিখ ফরম্যাট যা
Date, Expires এবং Last-Modified হেডারে ব্যবহৃত হয়, সর্বদা GMT-তে।
দুটি অস্বাভাবিক ফরম্যাট
একটি Mongo ObjectID 12 বাইট এবং প্রথম চারটি বাইট Unix সেকেন্ডে তৈরি হওয়ার সময়, তাই প্রতিটি ObjectID-এর ভিতরে একটি টাইমস্ট্যাম্প থাকে। এই টুলটি ডিকোড করার সময় তা বের করে; জেনারেট করার সময় এটি মেশিন এবং কাউন্টার মান উদ্ভাবনের পরিবর্তে বাকি আট বাইট শূন্য দিয়ে পূরণ করে।
Excel সিরিয়াল তারিখ 1899-12-30 থেকে দিন গণনা করে, ভগ্নাংশ অংশ দিনের সময় নির্দেশ করে। এই অদ্ভুত epoch আছে কারণ Excel ইচ্ছাকৃতভাবে একটি Lotus 1-2-3 বাগ পুনরুৎপাদন করে যা 1900-কে লিপ ইয়ার হিসেবে গণ্য করেছিল। 1899-12-30-কে দিন শূন্য হিসেবে ব্যবহার করলে মার্চ 1900 থেকে শুরু করে প্রতিটি তারিখ সঠিকভাবে মিলে যায়, তাই এই কনভার্টার এটি ব্যবহার করে।
সবকিছু একটি মুহূর্ত
আপনি যাই টাইপ করুন, টুলটি তা একটি একক JavaScript Date-এ পার্স করে এবং সেই একটি মুহূর্তকে এগারোটি ফরম্যাটেই পুনরায় রেন্ডার করে। কিছুই কোথাও পাঠানো হয় না — রূপান্তর সম্পূর্ণরূপে আপনার ব্রাউজারে চলে।