2011年09月01日

[AIX] AIXのdateコマンドが化石な件について

一体いつになったら、linuxとかGNU相当の機能になるのか。
kshで凝った処理をつくるなよwってことなのか。

似たようなことを調べた方のために、また備忘録としてメモしておこう。

「AIXのkshでエポック時間(所謂UNIX時間)を取得」

・現在時刻の場合
  date '%s'
・指定時刻の場合
  date +%s -d '2011-09-01 17:20:00'
甘い、甘いんだよ明智くん。
  GNUな機能は無いんだよ。date --date yesterdayも無いんだぜ?
  
  で、どうするか、というか自力しかない。
  この時代に車輪の再開発。信じられない。
  以下に式は載っているので気が向いた方はどうぞ。
  http://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap04.html#tag_04_14
  
  で、別の方法となるともう別の言語に頼るしかない。
  一番簡単なのはPerl one'Liner
  EP_TIME=`echo $hoge | perl -MTime::Local -ne '$date="$_";my($year,$mon,$day, $hour, $min, $sec) =($date =~ /(\d{4})\/(\d\d)\/(\d\d)(\d\d):(\d\d):(\d\d)/);printf(timelocal($sec,$min,$hour,$day,$mon-1,$year));'`

  コンパイラがあるなら、Cでもjavaでもなんでもやってくれ。

  この手のしょーもないので止まったときって、モチベーションすごい下がるよね。
  ┐(´д`)┌ ハイハイ
  
検索用キーワード AIX、エポック時間、UNIX時間、date、ksh、取得、指定日付
posted by koteitan at 17:31| Comment(1) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
逆版はこんなんですか

TIME=`echo 123456789 |perl -MTime::localtime -ne '$TIME="$_"; $tm=localtime($TIME); printf("%d/%02d/%02d %02d:%02d:%02d\n",$tm->year+1900,$tm->mon+1,$tm->mday,$tm->hour,$tm->min,$tm->sec);'`
Posted by koteitan at 2014年10月07日 18:47
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック