年月日時分秒を取得する
時刻を取得するには datetime.datetime.now() を用います。
この情報をそのまま使うということは稀だと思いますので、下記のコードははそれに応じた年月日時分秒マイクロ秒を示す文字列を取得する関数を定義し、コンソールに出力させています。
import datetime
def get_string_ymdhms( arg_datetime ):
y4 = arg_datetime.year
m2 = arg_datetime.month
d2 = arg_datetime.day
hh = arg_datetime.hour
mm = arg_datetime.minute
ss = arg_datetime.second
us = arg_datetime.microsecond
strret = "{0:04}_{1:02}{2:02}_{3:02}{4:02}{5:02}_{6:06}".format( y4, m2, d2, hh, mm, ss, us )
# ミリ秒までの場合.
# ms = int( us / 1000 )
# strret = "{0:04}_{1:02}{2:02}_{3:02}{4:02}{5:02}_{6:03}".format( y4, m2, d2, hh, mm, ss, ms )
return strret
print( "====================================" )
# 現在の年月日時分秒マイクロ秒を取得する.
# now の引数に何も指定しなければ JST Japan Standard Time.
# 日本標準時は https://www.nict.go.jp/JST/JST5.html で参照できる.
dtm0 = datetime.datetime.now()
# タイムゾーン情報を表示する.
print( dtm0.tzinfo )
# 現在の年月日時分秒マイクロ秒をコンソールに出力する.
print( dtm0 )
# マイクロ秒までの文字列を取得する
s0 = get_string_ymdhms( dtm0 )
print( s0 )
print( "====================================" )
# UTC の現在の時刻を取得する.
dtm1 = datetime.datetime.now( datetime.timezone.utc )
print( dtm1.tzinfo )
print( dtm1)
s1 = get_string_ymdhms( dtm1 )
print( s1 )
print( "====================================" )
# UTC からの時差を dt の変数として取得する.
for dt in range( -3, 4 ):
tmd = datetime.timedelta( hours = dt )
tmz = datetime.timezone( tmd )
dtm = datetime.datetime.now( tmz )
print( tmz )
print( dtm )
s = get_string_ymdhms( dtm )
print( s )
print( "" )
print( "====================================" )
print( "finish." )
下記が実行結果です。最後の for ループのコードが UTC に対して -3, -2, -1, 0, +1, +2, +3 になっていることに注目してください。
PS C:\tmp> python test.py
====================================
None
2022-07-18 09:06:44.360048
2022_0718_090644_360048
====================================
UTC
2022-07-18 00:06:44.360048+00:00
2022_0718_000644_360048
====================================
UTC-03:00
2022-07-17 21:06:44.361047-03:00
2022_0717_210644_361047
UTC-02:00
2022-07-17 22:06:44.361047-02:00
2022_0717_220644_361047
UTC-01:00
2022-07-17 23:06:44.361047-01:00
2022_0717_230644_361047
UTC
2022-07-18 00:06:44.361047+00:00
2022_0718_000644_361047
UTC+01:00
2022-07-18 01:06:44.361047+01:00
2022_0718_010644_361047
UTC+02:00
2022-07-18 02:06:44.361047+02:00
2022_0718_020644_361047
UTC+03:00
2022-07-18 03:06:44.361047+03:00
2022_0718_030644_361047
====================================
finish.