60552


python にあまりなれていなくて  
今日の JST0時の UTC 時刻  
(2019/11/14 15:00:00 が正解)  
を取り出したいのですがどうすればいいんでしょうか

[code]

    import datetime
    
    jst = timezone('Asia/Tokyo')
    jst_now = datetime.now.replace(jst)
    jst_start_today = datetime(jst_now.year, jst_now.month, jst_now.day, 0, 0, 0, jst)
    
[/code]

のようなことをいろいろ試行錯誤してみてるんですが  
メソッドが見つからないばかりで動作すらままなりません

ブログ記事を検索しても datetime が１回だったり２回並べてたり人によって書き方が違うみたいなんですが  
バージョンによって書き方が違ったりするんでしょうか

ruby や javascript には begining_of_day みたいなメソッドがあると思うんですが  
python にもあったりしませんか？

あと python のメソッドドキュメントってこれでいいんでしょうか  
<https://docs.python.org/ja/3/library/datetime.html>

これだとメソッドの検索性が悪くてなかなかやりたいことにたどり着けません

Java API ドキュメントのようにクラスのメソッド一覧をすぐ探す方法はありませんか？


CC BY-SA 4.0
2019-11-15T07:46:11.103
60547
2019-11-15T08:52:35.677
question
python
python でタイムゾーン変換


解1

[code]

    import datetime
    
    jst = datetime.timezone(datetime.timedelta(hours=9))
    print("jst =>", jst)
    
    jst_now = datetime.datetime.now(jst)
    print("jst_now =>", jst_now)
    
    jst_today = jst_now.replace(hour=0, minute=0, second=0, microsecond=0)
    print("jst_today =>", jst_today)
    
    jst_today_as_utc = jst_today.astimezone(datetime.timezone.utc)
    print("jst_today_as_utc =>", jst_today_as_utc)
    
    print(jst_today_as_utc.strftime("%Y/%m/%d %H:%M:%S"))
    
[/code]

解1の実行結果。

[code]

    jst => UTC+09:00
    jst_now => 2019-11-15 17:46:30.304059+09:00
    jst_today => 2019-11-15 00:00:00+09:00
    jst_today_as_utc => 2019-11-14 15:00:00+00:00
    2019/11/14 15:00:00
    
[/code]

解2。

[code]

    import datetime
    
    jst = datetime.timezone(datetime.timedelta(hours=9))
    print("jst =>", jst)
    
    today = datetime.date.today()
    print("today =>", today)
    
    zero = datetime.time()
    print("zero =>", zero)
    
    jst_today = datetime.datetime.combine(today, zero, tzinfo=jst)
    print("jst_today =>", jst_today)
    
    jst_today_as_utc = jst_today.astimezone(datetime.timezone.utc)
    print("jst_today_as_utc =>", jst_today_as_utc)
    
    print(jst_today_as_utc.strftime("%Y/%m/%d %H:%M:%S"))
    
[/code]

解2の実行結果。

[code]

    jst => UTC+09:00
    today => 2019-11-15
    zero => 00:00:00
    jst_today => 2019-11-15 00:00:00+09:00
    jst_today_as_utc => 2019-11-14 15:00:00+00:00
    2019/11/14 15:00:00
    
[/code]

メソッドが見つからないというのはモジュールとモジュールのインポートについて理解できていないためだと思います。datetime モジュールの中に
datetime,date,time,timezone といったクラスが定義されていることを理解してください。


CC BY-SA 4.0
2019-11-15T08:52:35.677
60552
2019-11-15T08:52:35.677
27410
60547
answer