2017-01-10 25 views
-4

[SunOS]日時の違いを調べる方法は?Sun OSの日付時刻の差異を計算するにはどうすればよいですか?

日1:2017年1月2日夜05時24分三十三秒 日2:2017年1月3日22時55分02秒

回答:1770分

+0

あなたはどのバージョンのSun OSを覚えていますか? Solaris 11、Solaris 10、Solarisの古いバージョン、または本当にSun OS 4.xを意味しますか? (Solarisのバージョンxは、バージョン5.x、IIRCに相当します) –

+0

http://stackoverflow.com/help/how-to-ask、http://stackoverflow.com/help/dont-ask、http ://stackoverflow.com/help/mcveここでQを投稿する前に[ツアー](http://stackoverflow.com/tour)に行ってください。がんばろう。 – shellter

答えて

1

日OSもSolarisのどちらも、Linuxのです;ネイティブのdateコマンドは、GNU date、AFAIKの機能を備えていません。 Linux上でどのように行うのかは明白かもしれませんが、POSIX dateを使ってどのように行うのかは分かりませんが、これはおおよそのSun OSまたはSolarisでサポートされています。

Unix & LinuxHow do I get the date from two weeks ago using Solaris date?が便利です。最近の十分なバージョンのSolarisを使用している場合(Solaris 11を意味すると思いますが、以前のバージョンを除く)、gdateを使用してGNU dateの機能にアクセスすることができます。次に、指定された2つの日付/時刻の値を 'エポックからの秒数'に変換し、それらを減算し、60で割り、時間間隔の分数を取得することができます。例えば

date1="2017-01-02 17:24:33" 
date2="2017-01-03 22:55:02" 
secs1=$(gdate -d "$date1" +'%s') 
secs2=$(gdate -d "$date2" +'%s') 
echo $((($secs2 - $secs1)/60)) 

その出力が1770あります。

$((…))は、KornシェルとBashでもサポートされているPOSIXシェル算術です。 Solaris 11 /bin/shがサポートしているかどうかはわかりません。歴史的には、そのシェルはといっても$(…)をサポートしていないBourneシェルでした。

すでにgdateをお持ちでない場合は、公式のSolarisリポジトリからSolarisにインストールできるオプションのGNUソフトウェアの詳細については、クロスリファレンスの質問を参照してください(Solaris default install user tools参照)。

関連する問題