1

入力ファイルに含まれる

2012-12-23 23:59:59

最初に時間を秒に変換してから、日付と組み合わせる必要があります(日付を小数として時間に追加します)

time (sec) = 23*3600 + 59*60 + 59 = 86400

日付.23(日付のみ)

出力は86400.23

友達は私を助けてください。私はこれを機能させることができません。前もって感謝します。

4

2 に答える 2

1

次の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}'
于 2012-10-17T18:28:46.507 に答える
1

コマンドを使用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

デモ

于 2012-10-17T20:02:50.250 に答える