年月日時分秒を取得する

時刻を取得するには 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.