開始日の経過時間(秒)を日付に変換

開始日の経過時間(秒)を日付に変換

特定の秒を日付に変換したいです。私の場合は、0001年1月1日以降に経過した秒数です。

エポックから数秒が経過したら簡単です$ date -r nr_of_secondsdate特定の日に開始するように指示する方法があれば良いと思います。そのようなオプションはありますか(-v私の要件をほぼ満たしているようです...私の考えでは)?

私はMacを使用しています。

ベストアンサー1

date -r作業はほぼ完了しました。あなたがすべきことは、原点を移動することだけです。これは加算的です。

date -r $((number_of_seconds - epoch))

epoch1970年1月1日から1970年1月1日の間の秒数はどこにありますか?値はepochカレンダーによって異なります。

グレゴリー力では1年から1970年までに477回のうるう年があるので、365×1969+477=719162日=62135596800秒となります。この数は2 32より大きいため、これを処理するには64ビット操作可能なシェルが必要です。それが西暦2世紀以降の日付を表す場合、とにかくあなたは232number_of_seconds歳以上です。私の考えでは、bashは以前の32ビットOSXでも64ビット算術をサポートすると思いますが、わかりません。

date -r $((number_of_seconds - 62135596800))

おすすめ記事