2011年11月29日火曜日

VB Scriptでエポック秒を日時に変換する

日時をエポック秒にするには力技でなんとかなります。
でも、エポック秒を日時にするにはどうしたらいいでしょう?

ちょっと考えて、こんなコードを書きました。

DateAdd("h", 9, DateAdd("s", 1322551104323, DateSerial(1970, 1, 1)))

"1322551104323"はエポック秒だと思ってください。

まずはDateSerialでエポック秒の開始日時を取得します。

そして、DateAddで変換するエポック秒を加算します。
引数の"s"は秒単位という意味です。

ただこれだと時差を考慮していません。
もう一回DateAddを使い、日本の時差+9:00をさらに加算します。
引数の"h"は時単位という意味です。

一応、検算して正しいと出ています。
誰得コードですが、奇特な方には刺さる記事かも?

NGワード:Windows PowerShellを使えばいいじゃない
↑の弁明:Windows XPでWindows PowerShellが無い環境だったんだよ…

0 件のコメント:

コメントを投稿