Python モジュールで『現在の日付と時刻(年月日 時分秒)』を取得するコード例です。
以下のメソッドを使用すると取得できました。
- datetime.datetime.now() デートタイム ナウ
- datetime.datetime.today() デートタイム トゥデイ
- datetime.date.today() デート トゥデイ
これで、日本なら『日本での日付と時刻』が取得できました。
通常は、万能な datetime.datetime.now() を使うのが便利でした。
Python マニュアルによると、now() と today() の違いは、タイムゾーン情報を『受け取れる』か『受け取れない』か、というところにありました。
datetime.datetime.now() は、タイムゾーン情報を『受け取れる』。
datetime.datetime.today() は、タイムゾーン情報を『受け取れない(受け取らない)』。
使用したライブラリ
Python 公式マニュアルの場所です。
datetime モジュール
- datetime — 基本的な日付型および時間型
- datetime オブジェクト
- classmethod datetime.now(tz=None) タイムゾーン情報が『受け取れる』
- classmethod datetime.today() タイムゾーン情報が『受け取れない』
- datetime.strftime(format) エスティーアールエフタイム
- date オブジェクト
- strftime() and strptime() Format Codes 書式化コード %Y %m %d %H %M %S %f %% などの一覧表
- datetime オブジェクト
組み込み機能
- f-string f” の説明(引用符の前に『エフ f 』を付けた文字列、フォーマット済み文字列リテラル)
- 文字列操作の良いアプローチや書式指定方法の説明
コード例
datetime モジュールで『現在の日付と時刻(年月日 時分秒)』を取得する Python コード例です。
実行結果は、実行した時刻によって変わりました。
datetime.now()
import datetime
# datetime.now() で『現在の日付と時刻』を取得して表示するコード
t = datetime.datetime.now()
print('datetime.datetime.now()')
print(f'{t}\n')
print('# f-string')
print(f'year: {t.year}')
print(f'month: {t.month}')
print(f'day: {t.day}')
print(f'hour: {t.hour}')
print(f'minute: {t.minute}')
print(f'second: {t.second}')
print(f'microsecond: {t.microsecond}')
print(f'tzinfo: {t.tzinfo}\n')
print('# str.format()')
print('year: {t.year}'.format(t=t))
print('month: {t.month}'.format(t=t))
print('day: {t.day}'.format(t=t))
print('hour: {t.hour}'.format(t=t))
print('minute: {t.minute}'.format(t=t))
print('second: {t.second}'.format(t=t))
print('microsecond: {t.microsecond}'.format(t=t))
print('tzinfo: {t.tzinfo}\n'.format(t=t))
print('# % 演算子')
print('year: %d' % t.year)
print('month: %d' % t.month)
print('day: %d' % t.day)
print('hour: %d' % t.hour)
print('minute: %d' % t.minute)
print('second: %d' % t.second)
print('microsecond: %d' % t.microsecond)
print('tzinfo: %s\n' % t.tzinfo)
実行結果 datetime.now()
datetime.datetime.now()
2019-12-02 08:53:20.142959
# f-string
year: 2019
month: 12
day: 2
hour: 8
minute: 53
second: 20
microsecond: 142959
tzinfo: None
# str.format()
year: 2019
month: 12
day: 2
hour: 8
minute: 53
second: 20
microsecond: 142959
tzinfo: None
# % 演算子
year: 2019
month: 12
day: 2
hour: 8
minute: 53
second: 20
microsecond: 142959
tzinfo: None
datetime.now() ⇒ strftime() で書式設定して表示
import datetime
# datetime.now() で『現在の日付と時刻』を取得して、
# strftime() で書式設定してから表示するコード。
t = datetime.datetime.now()
print('datetime.datetime.now()')
print(f'{t}\n')
print('英数字 %Y/%m/%d %H:%M:%S.%f')
print(f'{t.strftime("%Y/%m/%d %H:%M:%S.%f")}\n')
print('日本語 str.format(キーワード引数)')
text = t.strftime('%Y{y} %m{m} %d{d} %H{H} %M{M} %S{S} %f{f}')
text = text.format(y='年', m='月', d='日', H='時', M='分', S='秒', f='マイクロ秒')
print(f'{text}\n')
print('日本語 str.format(位置引数)')
text = t.strftime('%Y{0} %m{1} %d{2} %H{3} %M{4} %S{5} %f{6}')
text = text.format('年', '月', '日', '時', '分', '秒', 'マイクロ秒')
print(f'{text}\n')
print('日本語 % 演算子 dict()')
text = t.strftime('%Y%%(y)s %m%%(m)s %d%%(d)s %H%%(H)s %M%%(M)s %S%%(S)s %f%%(f)s')
text = text % dict(y='年', m='月', d='日', H='時', M='分', S='秒', f='マイクロ秒')
print(f'{text}\n')
print('日本語 % 演算子(位置引数)')
text = t.strftime('%Y%%s %m%%s %d%%s %H%%s %M%%s %S%%s %f%%s')
text = text % ('年', '月', '日', '時', '分', '秒', 'マイクロ秒')
print(f'{text}\n')
実行結果 datetime.now() ⇒ strftime()
datetime.datetime.now()
2019-12-02 08:53:20.143959
英数字 %Y/%m/%d %H:%M:%S.%f
2019/12/02 08:53:20.143959
日本語 str.format(キーワード引数)
2019年 12月 02日 08時 53分 20秒 143959マイクロ秒
日本語 str.format(位置引数)
2019年 12月 02日 08時 53分 20秒 143959マイクロ秒
日本語 % 演算子 dict()
2019年 12月 02日 08時 53分 20秒 143959マイクロ秒
日本語 % 演算子(位置引数)
2019年 12月 02日 08時 53分 20秒 143959マイクロ秒
datetime.today()
import datetime
# datetime.today() で『現在の日付と時刻』を取得して表示するコード
t = datetime.datetime.today()
print('datetime.datetime.today()')
print(f'{t}\n')
print('# f-string')
print(f'year: {t.year}')
print(f'month: {t.month}')
print(f'day: {t.day}')
print(f'hour: {t.hour}')
print(f'minute: {t.minute}')
print(f'second: {t.second}')
print(f'microsecond: {t.microsecond}')
print(f'tzinfo: {t.tzinfo}\n')
実行結果 datetime.today()
datetime.datetime.today()
2019-12-02 08:53:20.144960
# f-string
year: 2019
month: 12
day: 2
hour: 8
minute: 53
second: 20
microsecond: 144960
tzinfo: None
date.today()
import datetime
# date.today() で『現在の日付』を取得して表示するコード
t = datetime.date.today()
print('datetime.date.today()')
print(f'{t}\n')
print('# f-string')
print(f'year: {t.year}')
print(f'month: {t.month}')
print(f'day: {t.day}\n')
実行結果 date.today()
datetime.date.today()
2019-12-02
# f-string
year: 2019
month: 12
day: 2