FAQ-936 UnixのタイムスタンプをOriginの日付に変換するにはどうすればよいでしょうか?

最終更新日:2020/6/11

Origin 2020b以降、OriginのUnixTime( )関数を使って、Unix時間とユリウス暦を変換できます。以前のバージョンのOriginでは、以下を参照してください。

Unix時間は、「UNIXエポック、すなわち協定世界時 (UTC) での1970年1月1日午前0時0分0秒から形式的な経過秒数(すなわち、実質的な経過秒数から、その間に挿入された閏秒を引き、削除された閏秒を加えたもの)として表される。」([1])

ユリウス通日は「紀元前4713年1月1日正午以降の連続日数と分数(ユリウス暦で)。」と定義されています。 ([2])

Originはユリウス暦の日付を使用して日付データを内部的に保存します。よって、OriginでUnixタイムスタンプ(例えば日時として表示)で日付ベースのアクションを実行するには、それらをユリウス通日の日付に変換する必要があります。

式は簡単です:

JulianDate = (UnixTimestamp / 86400.0) + 2440587.0

ここで、2440587.0 は、ユリウス暦での1970/1/1 00:00:00 UTCにあたります。

列値の設定を使用してワークシート列に格納されたUnixタイムスタンプを変換するには、ワークシートに新しい列を追加し、次の式を使用します(タイムスタンプが列Aにあると仮定します)。

Origin 2017より前のバージョンもしくはスプレッドシートセル表記がオフの場合:

(col(A) / 86400.0) + 2440587.0

Origin 2017以降でスプレッドシートセル表記がオンの場合:

(A / 86400.0) + 2440587.0


Note: 観察力が鋭い読者は、提供されている式が、サードパーティのコンバータによって生成された式から0.5だけずれた値を生成することに気付くかもしれません。これは製品の歴史的な理由で、Originのユリウス通日の値が、ユリウス通日の適切な定義から12時間ずれているため、意図的なものです。詳細は、このページをご覧ください。

キーワード:Unix、タイムスタンプ、日付、時間、変換、ユリウス