(Pythonで)日時を日付に変換するにはどうすればよいですか?


646

どのようにして変換しないdatetime.datetimeオブジェクト(例えば、の戻り値datetime.datetime.now())datetime.datePythonでオブジェクトを?


16
これだけが必要な場合datetime.datetime.now()は、メソッドがあることに注意してくださいdatetime.date.today()
ティエリーJ.

すでに日時をインポートしている場合、たとえばfrom datetime import datetime日付を追加するだけでよいfrom datetime import datetime, date
Josh

回答:


984

次のdate()方法を使用します。

datetime.datetime.now().date()

14
非常に役立つUTCを取得するには-> datetime.datetime.utcnow()そしてそれに対応してdatetime.datetime.utcnow().date()
Nick Brady

2
@SeanColomboに感謝します。特定のタイムゾーンの現在の日付はdatetime.datetime.now(pytz.timezone('US/Pacific')).date()
モニカである


62

次のdatetime.datetime.date()方法を使用します。

datetime.datetime.now().date()

明らかに、上記の式は次のように書くことができます(そしてIMHO :)。

datetime.date.today()

14
男を混乱させないでください。
fiatjaf 2012

1
公平を期すために、この回答(を使用.today())は、上記の質問例の中で最もパイソンです。
Dannid 2016年

2
今日を使用する場合は、日付を比較するときに注意してください。 today()持っている時間の過ぎるのコンポーネントを。あなたがもしそうなら:losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')その後、if losdat < datetime.datetime.today():それは常にtrueになりますので、losdatのタイムスタンプの前に落ちる深夜の時間成分を持つことになりますtoday()
デニスDecoene

3
@DennisDecoene:オブジェクトが必要なときdatetime.datetime.today()datetime.date.today()、なぜの代わりに使用するのdatetime.dateですか?
tzot

@tzotはい、それは私が指摘したかったことでもありましたが、不明確でした。
Dennis Decoene 2017年

45

次のように、日時オブジェクトのdate()メソッドを使用して、日時オブジェクトを日付に変換できます。

<datetime_object>.date()

3
import time
import datetime

# use mktime to step by one day
# end - the last day, numdays - count of days to step back
def gen_dates_list(end, numdays):
  start = end - datetime.timedelta(days=numdays+1)
  end   = int(time.mktime(end.timetuple()))
  start = int(time.mktime(start.timetuple()))
  # 86400 s = 1 day
  return xrange(start, end, 86400)

# if you need reverse the list of dates
for dt in reversed(gen_dates_list(datetime.datetime.today(), 100)):
    print datetime.datetime.fromtimestamp(dt).date()

2
ここにこの回答を投稿するつもりでしたか?あなたの答えは別の質問に向けられているように見えます。
すべての労働者は必須である

2

次のコードフォームを入力できます(今日の日付とその日の名前と時間)datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')

'19 -09-09 Mon 17:37:56 '

このコードを入力します(今日の日付のみ)datetime.date.today().strftime('%y-%m-%d') '19 -09-10 '

オブジェクトの場合: datetime.datetime.now().date() datetime.datetime.today().date() datetime.datetime.utcnow().date() datetime.datetime.today().time() datetime.datetime.utcnow().date() datetime.datetime.utcnow().time()


OPはdatetime.date、文字列ではなくオブジェクトを取得することを望んでおり、これstrftimeは(ref:docs.python.org/3/library/datetime.html#datetime.date.strftime)を返します。
Grzegorz Skibinski
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.