入力ファイルに含まれる
2012-12-23 23:59:59
最初に時間を秒に変換してから、日付と組み合わせる必要があります(日付を小数として時間に追加します)
time (sec) = 23*3600 + 59*60 + 59 = 86400
日付.23(日付のみ)
出力は86400.23
友達は私を助けてください。私はこれを機能させることができません。前もって感謝します。
入力ファイルに含まれる
2012-12-23 23:59:59
最初に時間を秒に変換してから、日付と組み合わせる必要があります(日付を小数として時間に追加します)
time (sec) = 23*3600 + 59*60 + 59 = 86400
日付.23(日付のみ)
出力は86400.23
友達は私を助けてください。私はこれを機能させることができません。前もって感謝します。
次のbash
コードを参照してください。
d='2012-12-23 23:59:59'
IFS=: read h m s <<< "$d"
day=${d% *}; day=${day##*-}
echo $(( (${h#* } * 3600) + (m * 60) + s)).$day
またはawk
:
d='2012-12-23 23:59:59'
read day hour min sec < <(awk -F'[ :-]' '{print $3, $4, $5, $6}' <<< "$d")
echo $(( (hour * 3600) + (min * 60) + sec)).$day
または単に:
echo '2012-12-23 23:59:59' | awk -F'[ :-]' '{print ($4*3600)+($5*60)+$6"."$3}'
コマンドを使用date
して、入力を検証/フォーマットできます。
#!/bin/bash
read datetime
date=$(date --date="$datetime" +%d)
time=$(date --date="$datetime" +"1970-01-01 %H:%M:%S UTC")
echo $(date --date="$time" +%s).$date
# -> 86399.23