এসই নেটওয়ার্কের অন্যান্য সমস্ত প্রশ্নের মধ্যে এমন পরিস্থিতি রয়েছে যেখানে তারিখটি now
( প্রশ্ন ) বলে গণ্য করা হয় বা যেখানে কেবল একটি তারিখ নির্দিষ্ট করা হয় ( প্রশ্ন )।
আমি যা করতে চাই তা হল একটি তারিখ এবং সময় সরবরাহ করা এবং তারপরে একটি সময় বিয়োগ করা।
এখানে আমি প্রথমে চেষ্টা করেছি:
date -d "2018-12-10 00:00:00 - 5 hours - 20 minutes - 5 seconds"
এর ফলাফল 2018-12-10 06:39:55
- এটি 7 ঘন্টা যোগ করেছে। তারপরে 20:05 মিনিট বিয়োগ করে।
এর পৃষ্ঠা man
এবং info
পৃষ্ঠাটি পড়ার পরে date
, আমি ভেবেছিলাম এটির সাথে এটি ঠিক করে রেখেছি:
date -d "2018-12-10T00:00:00 - 5 hours - 20 minutes - 5 seconds"
কিন্তু, একই ফলাফল। এটি 7 ঘন্টা এমনকি কোথায় পায়?
আমি অন্যান্য তারিখগুলিও চেষ্টা করেছিলাম কারণ আমি ভেবেছিলাম যে সেদিন আমাদের কাছে 7200 লিপ সেকেন্ড ছিল, কে জানো। তবে একই ফলাফল।
আরও কয়েকটি উদাহরণ:
$ date -d "2018-12-16T00:00:00 - 24 hours" +%Y-%m-%d_%H:%M:%S
2018-12-17_02:00:00
$ date -d "2019-01-19T05:00:00 - 2 hours - 5 minutes" +%Y-%m-%d_%H:%M:%S
2019-01-19_08:55:00
তবে এখানে এটি আকর্ষণীয় হয়ে ওঠে। আমি যদি ইনপুটটিতে সময়টি বাদ দিই তবে তা ঠিক কাজ করে:
$ date -d "2018-12-16 - 24 hours" +%Y-%m-%d_%H:%M:%S
2018-12-15_00:00:00
$ date -d "2019-01-19 - 2 hours - 5 minutes" +%Y-%m-%d_%H:%M:%S
2019-01-18_21:55:00
$ date --version
date (GNU coreutils) 8.30
আমি কী মিস করছি?
আপডেট: আমি Z
শেষে একটি যোগ করেছি , এবং এটি আচরণটি পরিবর্তন করেছে:
$ date -d "2019-01-19T05:00:00Z - 2 hours" +%Y-%m-%d_%H:%M:%S
2019-01-19_04:00:00
যদিও আমি এখনও বিভ্রান্ত। তারিখ সম্পর্কে জিএনইউ তথ্য পৃষ্ঠায় এ সম্পর্কে খুব বেশি কিছু নেই ।
আমি অনুমান করছি এটি একটি সময় অঞ্চল সমস্যা, তবে আইএসও 8601 তে ক্যালেন্ডার উইকির উদ্ধৃতি দিচ্ছে :
যদি কোনও ইউটিসি সম্পর্কের তথ্য সময় উপস্থাপনের সাথে না দেওয়া হয়, তবে সময়টি স্থানীয় সময় হিসাবে ধরে নেওয়া হবে।
যা আমি চাই। আমার স্থানীয় সময়টিও সঠিকভাবে সেট করা আছে। আমি নিশ্চিত নই কেন তারিখটি আমার সাথে ডেটটাইম সরবরাহ করে এবং এর বাইরে কিছু বিয়োগ করতে চাইলে এই সাধারণ ক্ষেত্রে সময়সীমার সাথে কেন ঝামেলা করবে। এটি কি প্রথমে তারিখের স্ট্রিং থেকে ঘন্টাগুলি বিয়োগ করা উচিত নয়? এমনকি যদি এটি প্রথমে একটি তারিখে রূপান্তর করে এবং তার পরে বিয়োগ করে, এমনকি যদি আমি কোনও বিয়োগ বাদ দিই তবে আমি যা চাই ঠিক তা পাই:
$ date -d "2019-01-19T05:00:00" +%Y-%m-%d_%H:%M:%S
2019-01-19_05:00:00
সুতরাং যদি এটি সত্যিই একটি সময় অঞ্চল সমস্যা হয় তবে সেই উন্মাদনাটি কোথা থেকে আসে?