- ベストアンサー
エポック秒をExcelで扱う方法?
あるシステムから吐き出されるデータが、日付と時刻が「エポック秒」なる形式になっています。このデータをExcelで普通に日付・時刻として扱うには、どうすれば良いでしょうか? 変換式とかあるんでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
A1にエポック秒があるとして、 =(A1/(3600*24))+25569+135/360 でどうでしょうか。 Excelでこのセルの表示形式を(ユーザー定義で) yyyy/mm/dd hh:mm:ss としてみてください。 日本標準時で計算していますが、これでいいかどうかは自信ありません。不要なら省く必要があります。 式の意味は、 A1/(3600*24) → エポック秒を『日単位』にしています。(日数にしています) 25569 → Excelでの『1970/1/1』の日付連番です。エポック秒をExcelの日付連番にしています。 135/360 → 日本標準時分加算(統計135度 分を加算しているつもりだが・・・自信無し) Excel形式→エポック秒は、上式の逆変換で、 =DATEDIF("1970/1/1",A2,"d")*24*3600+(A2-INT(A2)-9/24)/"0:00:01" でしょうか。表示形式は標準または数値にします。A2がExcelの日付(+時刻)です。 2つの式で計算すると、1037022659 ←→ 2002/11/11 22:50:59 [JTS] でした。 自信なしです。確かめて下さい。
お礼
確かめてみました。 エポック秒→シリアル値(Excel形式)しか試してませんが、正しく変換されてるようです。 元のデータ(エポック秒)がGMTなのか、JTSなのか確認が必要だと認識しつつも目処はつきました。 -------------------------------------------------- ちなみに、日本標準時分加算の部分ですが、「135/360」であってます。計算結果は「0.375」となり、これはExcel形式での時間に換算すると9時間に相当します。 次のように確認しました(Excel上で表示形式を標準と日時に切り替えると分かります) =TIME(9,0,0) → 9:00:00 = 0.375 = 135/360 -------------------------------------------------- どうもありがとうございました。