Pythonの時刻の基準を調べてみる

プログラムで時間を扱っていると、システムの中で基準値を決めていてそこからの経過時間を絶対値としてとらえて、それを我々に分かり易いように変換して表示していることがあったりします。Pythonの場合の時刻の基準はいつになっているのでしょうか。調べてみました。

目次

  1. 時刻の基準は様々
  2. time.gmtimeメソッド
  3. Windows10の基準時刻は

時刻の基準は様々

公式ドキュメントにはこのように書いてあります。

エポック (epoch) は時刻の起点のことで、これはプラットフォーム依存です。 Unix では、エポックは (UTC で) 1970 年 1 月 1 日 0 時 0 分 0 秒です。

プラットフォーム依存なので、自分のOSではどうなのか調べてみました。

time.gmtimeメソッド

時刻の起点からの秒数を指定すると、その秒数の時刻を返すメソッドです。

import time

ret = time.gmtime([secs])
変数 内容
secs int 省略可。時刻の起点からの秒数。省略した場合は、現在の時刻。
ret time.struct_time 指定秒の時刻を表すオブジェクト。

戻り値はtime.struct_timeクラスのオブジェクトです。このオブジェクトのタイムゾーンはUTC(世界協定時刻)です。

secsに0を指定すれば、そのシステムの基準となる時刻がわかるわけですね。

Windows10の基準時刻は

では、Windows10でどうなるか試してみましょう。

Microsoft Windows [Version 10.0.17134.472]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users>python
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.gmtime(0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
>>> time.gmtime(0).tm_zone
'UTC'
>>>

Windows10 Home 64bitのコマンドプロンプトで動作させているPython 3.7.1での結果です。

1970年1月1日0時0分0秒(UTC)が基準になっていることがわかりました。

広告

Pythonの日付/時刻処理カテゴリの投稿