- PR -

西暦を算出する

1
投稿者投稿内容
江戸の子
常連さん
会議室デビュー日: 2005/09/05
投稿数: 23
お住まい・勤務地: 静岡
投稿日時: 2006-08-14 11:58
お世話になっております。
qmailのログは以下のような形の日付があります:
1148453113.980236

これは国際原子時(TAI)でしょうか?もしこの日付から西暦を導き出そうとすると(Bシェル)、なにかいいアドレスいただきましょうか?
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2006-08-14 14:28
普通はこれを使うんじゃ?
http://cr.yp.to/daemontools/tai64nlocal.html

_________________
桃李不言 下自成蹊
うえだ
ベテラン
会議室デビュー日: 2006/01/21
投稿数: 52
投稿日時: 2006-08-14 14:52
date コマンドの逆ですね。
あってもいいようなのですが、簡単なのでいつも作ってしまいます。
gccがあれば以下のソースがコンパイルできます。
引数を適当に解釈して、timep[0]に設定すれば、
おそらくお望みのものが出来ると思います。
小数点以下の切捨て処理も必要かな?

#include <time.h>
#include <stdio.h>
main()
{
time_t timep[1];
char *time1;
timep[0]=1148453113;

time1 = ctime(timep);
printf("%s\n",time1);
}

江戸の子
常連さん
会議室デビュー日: 2005/09/05
投稿数: 23
お住まい・勤務地: 静岡
投稿日時: 2006-08-14 15:09
親切なご指導いただきましてどうも有り難うございました。

べつの話ですが、maillog.logのログ:
----------------
Apr 12 19:38:02 ホスト名 qmail: 1148453113.980236 status: exiting
......
----------------
その6行目(1148453113.980236) はいったいなんですか?小数点以下と小数点以上はそれぞれなに?
うえだ
ベテラン
会議室デビュー日: 2006/01/21
投稿数: 52
投稿日時: 2006-08-14 15:15
1148453113.980236

の整数部分は1970/01/01 00:00:00 からの経過秒数です。
UNIXの仕様です。
小数点以下はそのときのマイクロ秒になっていると思います。
小数点以下が出てきたのは比較的新しいと思いますが(それでも10年以上前かも)

まあそんなものだということです。(いい加減過ぎかな?)
うえだ
ベテラン
会議室デビュー日: 2006/01/21
投稿数: 52
投稿日時: 2006-08-14 15:20
書き込んだ後に気がつきましたが

Apr 12 19:38:02 ホスト名 qmail: 1148453113.980236 status: exiting

だと日にちが違いますね。
Wed May 24 15:45:13 2006

だと思ったのですが、qmail では特殊な日時を付けているのでしょうか?
謎じゃ。
江戸の子
常連さん
会議室デビュー日: 2005/09/05
投稿数: 23
お住まい・勤務地: 静岡
投稿日時: 2006-08-14 16:26
そうではない。申し訳ございません。わたしが貼りついた日時に過ぎません,本物ではなく。気にしなくても良いです。^_^;
此度は本当にありがとうございました。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2006-08-14 20:55
わりと余談ですが。
引用:

江戸の子さんの書き込み (2006-08-14 11:58) より:
これは国際原子時(TAI)でしょうか?


TAIともUTCともきれいに結びつかない、システム依存の時間です。
Unixではこのあたりは結構いいかげんです。

qmailの作者であるDJBがこの点について論じています。
http://cr.yp.to/proto/utctai.html
1

スキルアップ/キャリアアップ(JOB@IT)