web-dev-qa-db-ja.com

Pythonで文字列を日時に変換する

私はこの文字列を持っています:

_'2012-02-10' # (year-month-day)
_

日付関数isoweekday()を使用するには、日付型として使用する必要があります。

この文字列を日付に変換する方法を知っている人はいますか?

24
Lucas Rezende

datetime.strptime() でそれを行うことができます

例:

_>>> from datetime import datetime
>>> datetime.strptime('2012-02-10' , '%Y-%m-%d')
datetime.datetime(2012, 2, 10, 0, 0)
>>> _.isoweekday()
5
_

すべてのstrptimeディレクティブを持つテーブルを見つけることができます here


.isweekday() == 6の場合に2日間インクリメントするには、 timedelta() を使用できます。

_>>> import datetime
>>> date = datetime.datetime.strptime('2012-02-11' , '%Y-%m-%d')
>>> if date.isoweekday() == 6:
...     date += datetime.timedelta(days=2)
... 
>>> date
datetime.datetime(2012, 2, 13, 0, 0)
>>> date.strftime('%Y-%m-%d')   # if you want a string again
'2012-02-13'
_
42
Rik Poggi

OPのリクエストごとに質問が回答されたようですが、どの回答も_datetime.date_ではなく_datetime.datetime_オブジェクトを取得する良い方法を提供していません。そのため、このスレッドを検索して見つけるために:

_datetime.date_には_.strptime_メソッドがありません。代わりに_datetime.datetime_にあるものを使用し、その上で.date()を呼び出して_datetime.date_オブジェクトを受け取ります。

そのようです:

_>>> from datetime import datetime
>>> datetime.strptime('2014-12-04', '%Y-%m-%d').date()
datetime.date(2014, 12, 4)
_
48
Darian Moody
from datetime import datetime

a = datetime.strptime(f, "%Y-%m-%d")
6
f p
>>> from datetime import datetime
>>> year, month, day = map(int, my_date.split('-'))
>>> date_object = datetime(year, month, day)
3
Fred

つかいます - datetime.datetime.strptime

>>> import datetime
>>> date = datetime.datetime.strptime('2012-02-10', '%Y-%m-%d')
>>> date.isoweekday()
5
3
phihag