0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonのdatetimeを調べる

Posted at

はじめに

Pythonの標準ライブラリdatetimeで日時を使おうとしたところ、datetime(日付と時間・時刻)はdate:日付とtime:時刻に分かれていることを知ったのでまとめる

datetimeモジュールのオブジェクトは以下

  • datetime:日付と時刻を扱う
  • date:日付を扱う
  • time:時刻を扱う
    Pythonだと、date(日付)とtime(時刻)が分かれている。dateとtimeで分かれているのは初めて見たので少し驚いた。

datetimeオブジェクト

year, month, day以外は指定のない場合0

from datetime import datetime

datetime(year, month, day, hour=0,
minute=0, second=0, microsecond=0)

使用頻度の高い「今」の指定はもちろんあり、now()で取得できる

from datetime import datetime
now = datetime.now()
print(now)
print(now.second)
print(now.microsecond)
> 2023-06-29 14:53:45.758698
> 45
> 758698

microsecondは小数点以下として表示されるところが注意すべき所

combine()

dateオブジェクトtimeオブジェクトを結合して、datetimeオブジェクトを作るcombine()が存在する。確かにdateとtimeが分かれているなら使うことがありそう

dateオブジェクト

日付を扱う。現在の日付を取得する場合、date.today()で指定できる

from datetime import date
day = date.today()
> 2023-06-29

timeオブジェクト

from datetime import time

t1 = time(13, 0, 0)
> 13:00:00

time.time()はUNIXエポックを基準点とした経過秒数を返す関数。float型でマイクロ秒は小数点以下で入る。
さらに、datetime.fromtimestamp()にタイムスタンプを渡すとタイムスタンプからdatetimeに変換できる。この辺りはよく使いそう

from datetime import datetime, time
unix_time_stamp = time.time()
> 1688018941.685929
datetime.fromtimestamp(unix_time_stamp)
> 2023-06-29 15:09:01.685929

おわりに

確かに他の言語で、日付だけ必要で時刻をデフォルトの00:00:00の様な指定にしたり、逆に時刻だけ必要なんだけど、日付部分をどうしよう?  と悩むことが時々あるので、dateとtimeに分かれているのはややこしい気もしつつ、確かに正しさを感じる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?