Pythonプログラムはさまざまな方法で日付と時刻を処理でき、日付形式の変換は一般的な機能です。
Pythonは、日付と時刻のフォーマットに使用できる時刻とカレンダーのモジュールを提供します。
時間間隔は、**秒単位の浮動小数点10進数です。 ****
各タイムスタンプは、1970年1月1日の深夜(エポック)からの経過時間で表されます。
Pythonのtimeモジュールには、一般的な日付形式を変換するための多くの関数があります。たとえば、次の例のように、関数time.time()を使用して現在のタイムスタンプを取得します。
#! /usr/bin/python3
import time; #タイムモジュールを紹介する
ticks = time.time()print("現在のタイムスタンプは:", ticks)
上記の例の出力:
現在のタイムスタンプは次のとおりです:1459996086.7115328
タイムスタンプ単位は、日付の計算に最適です。しかし、1970年以前の日付はこのように表現することはできません。遠すぎる日付は機能しません。UNIXとWindowsは2038年までしかサポートしていません。
# タイミング
import time
start_time = time.time()print('training took %fs!'%(time.time()- start_time))
単位はmsです
多くのPython関数は、1つの要素にまとめられた9セットの数値を使用して時間を処理します。
シリアル番号 | フィールド | 値 |
---|---|---|
0 | 4 桁年 | 2008 |
1 | 月 | 1から12 |
2 | 日 | 1から31 |
3 | 時間 | 0から23 |
4 | 分 | 0から59 |
5 | 秒 | 0から61(60または61は飛躍的な秒です) |
6 | 曜日 | 0から6(0は月曜日) |
7 | 年間通算日 | 1から366(ジュリアンカレンダー) |
8 | 昼光節約時間 | -1、0、1、-1は昼光節約時間かどうかを決定するフラグです |
上記はstruct_timeタプルです。この構造には、次のプロパティがあります。
シリアル番号 | 属性 | 値 |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1から12 |
2 | tm_mday | 1から31 |
3 | tm_hour | 0から23 |
4 | tm_min | 0から59 |
5 | tm_sec | 0から61(60または61は飛躍的な秒です) |
6 | tm_wday | 0から6(0は月曜日) |
7 | tm_yday | 年の日、1から366 |
8 | tm_isdst | 昼光節約時間であるかどうかにかかわらず、値は次のとおりです:1(昼光節約時間)、0(昼光節約時間ではない)、-1(不明)、デフォルト-1 |
浮動小数点数を返すタイムスタンプから時間タプルに変換するには、浮動小数点数をlocaltimeなどの関数に渡すだけです。
#! /usr/bin/python3
import time
localtime = time.localtime(time.time())print("現地時間は:", localtime)
上記の例の出力:
現地時間は次のとおりです。time.struct_time(tm_year = 2016、tm_mon = 4、tm_mday = 7、tm_hour = 10、tm_min = 28、tm_sec = 49、tm_wday = 3、tm_yday = 98、tm_isdst = 0)
必要に応じてさまざまな形式を選択できますが、読み取り可能な時間モードを取得するための最も簡単な関数はasctime()です。
#! /usr/bin/python3
import time
localtime = time.asctime( time.localtime(time.time()))print("現地時間は:", localtime)
上記の例の出力:
現地時間は: Thu Apr 710:29:132016
時間モジュールのstrftimeメソッドを使用して、日付をフォーマットできます。
time.strftime(format[, t])
#! /usr/bin/python3
import time
# 2016としてフォーマット-03-2011:45:39フォーム
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 2822年3月土曜日としてフォーマット:24:242016フォーム
print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
# フォーマット文字列をタイムスタンプに変換する
a ="Sat Mar 28 22:24:24 2016"print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
上記の例の出力:
2016-04-0710:29:46
Thu Apr 0710:29:4620161459175064.0
pythonの時刻と日付のフォーマット記号:
カレンダーモジュールには、月次カレンダーの印刷など、年次および月次カレンダーを処理するためのさまざまな方法があります。
#! /usr/bin/python3
import calendar
cal = calendar.month(2016,1)print("以下は、2016年1月のカレンダーを出力します:")print(cal)
上記の例の出力:
以下は、2016年1月のカレンダーを出力します:
January 2016
Mo Tu We Th Fr Sa Su
12345678910111213141516171819202122232425262728293031
参照:[https://www.runoob.com/python3/python3-date-time.html](https://www.runoob.com/python3/python3-date-time.html)