মধ্যরাত থেকে আমি কীভাবে সেকেন্ড খুঁজে পাব?


11

dateপ্রোগ্রামটি ব্যবহার করে , আমি মধ্যরাত থেকে সেকেন্ডের সংখ্যা কীভাবে গণনা করতে পারি?


1
তারিখ "+ (% এইচ * 60 +% এম) * 60 +% এস" | বিসি
— গ্রাওক্সিকদা

1
প্রতিধ্বনি $ (($ (তারিখ '+ (% এইচ * 60 +% এম) * 60 +% এস')))
— গ্রাওক্সদা

উত্তর:


14

প্রতিযোগিতার পরিস্থিতি এড়াতে, এখনও জিএনইউ তারিখটি ধরে নিচ্ছেন:

eval "$(date +'today=%F now=%s')"
midnight=$(date -d "$today 0" +%s)
echo "$((now - midnight))"

এর সাথে zsh, আপনি এটি অভ্যন্তরীণভাবে করতে পারেন:

zmodload zsh/datetime
now=$EPOCHSECONDS
strftime -s today %F $now
strftime -rs midnight %F $today
echo $((now - midnight))

বহনযোগ্যভাবে, টাইমজোনগুলিতে যেখানে কোনও দিবালোক সংরক্ষণের স্যুইচ নেই, আপনি এটি করতে পারেন:

IFS=:
set -- $(date +%T)
echo "$((${1#0} * 3600 + ${2#0} * 60 + ${3#0}))"

${X#0}নেতৃস্থানীয় 0 সেঃ কিছু শাঁস যা পছন্দ স্ট্রিপ হয় bash, dashএবং poshসঙ্গে কারণ সমস্যার 09(যেখানে শেল এটা একটি অবৈধ অকট্যাল সংখ্যাকে হচ্ছে অভিযোগ)।


খুব চালাক এবং ভাল ব্যবহারের ভাল ব্যবহার
— উলিরিচ ড্যাঞ্জেল

আমি বরং এই লাইনগুলি বরাবর কিছু ব্যবহার করব:IFS=: read -r today now <<< $(date +%F:%s); midnight=$(date -d "$today 0" +%s); echo $(( now - midnight ))
— এক্স-ইয়ুরি

7

কোনও গাণিতিক প্রকাশের প্রয়োজন নেই, খাঁটি তারিখটি ব্যবহার করুন:

date -d "1970-01-01 UTC $(date +%T)" +%s

দুর্দান্ত উত্তর, শীর্ষ এক হওয়া উচিত।
— লিওপোলোডো সান্জিক

1
Mac এ brew install coreutilsএবং প্রতিস্থাপন dateসঙ্গেgdate
— কনর McCormick

2

বাশের উপর ভিত্তি করে , জিএনইউ সিস্টেমে মধ্যরাত থেকে মিলিসেকেন্ডে বর্তমান সময়টি পান , এটি এটি করা যেতে পারে:

$ now=$(date '+%s')
$ midnight=$(date -d 'today 00:00:00' '+%s')
$ echo $(( now - midnight ))
53983

2
আপনি নিশ্চিত করতে চান যে আপনি 23:59:59
— স্টাফেন চ্যাজেলাস

এবং ফিরে রূপান্তর করতে:date -d @$seconds
— চোরোবা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.