2009-10-05 21 views
7

かなり単純な初心者質問:Pythonで日付と時刻を指定する方法は?

Pythonで日付(および時間)を指定するためにPythonで使用されるオブジェクトは何ですか?

たとえば、特定の日付と時刻を保持するオブジェクトを作成するには('05/10/09 18:00'としましょう)。 S.Lott要求ごととして

EDIT

、私がこれまで持っていることは次のとおりです。

class Some: 
    date = 

は、私は私が知っていませんでした実現のために「=」記号の後、そこに停止正しいオブジェクトは何ですか;

答えて

37

簡単な例:

>>> import datetime 
# 05/10/09 18:00 
>>> d = datetime.datetime(2009, 10, 5, 18, 00) 
>>> print d.year, d.month, d.day, d.hour, d.second 
2009 10 5 18 0 
>>> print d.isoformat(' ') 
2009-10-05 18:00:00 
>>> 
4

datetimeモジュールを見てください; datetime、date、timedeltaのクラス定義があります。

+0

私はすでにそれを見ていましたが、どこから始めるべきかを知りませんでした。あまりにも大きい文書 – OscarRyz

+4

:(私はそれをすべて読まなければならないと思うでしょう) – OscarRyz

+2

@Oscar Reyes:あなたのような、あなたが何をしたいのかを示すコードスニペットを提供するなど、より詳細な質問をすることができます。 –

4

ニックDはあなたの問題を処理する公式の方法があります。あなたの質問にしたように文字列を渡したい場合、dateutilモジュール(http://labix.org/python-dateutil)はそのようなことに対して優れたサポートをしています。

例について

、私はすぐに戻ってしばらくした別の答えからコピー&ペーストするつもりです:

簡単な例:不明瞭に

>>> parse("Thu Sep 25 2003") 
datetime.datetime(2003, 9, 25, 0, 0) 

>>> parse("Sep 25 2003") 
datetime.datetime(2003, 9, 25, 0, 0) 

>>> parse("Sep 2003", default=DEFAULT) 
datetime.datetime(2003, 9, 25, 0, 0) 

>>> parse("Sep", default=DEFAULT) 
datetime.datetime(2003, 9, 25, 0, 0) 

>>> parse("2003", default=DEFAULT) 
datetime.datetime(2003, 9, 25, 0, 0) 

>>> parse("10-09-2003") 
datetime.datetime(2003, 10, 9, 0, 0) 

>>> parse("10-09-2003", dayfirst=True) 
datetime.datetime(2003, 9, 10, 0, 0) 

>>> parse("10-09-03") 
datetime.datetime(2003, 10, 9, 0, 0) 

>>> parse("10-09-03", yearfirst=True) 
datetime.datetime(2010, 9, 3, 0, 0) 

へ全面的に:

>>> parse("Wed, July 10, '96") 
datetime.datetime(1996, 7, 10, 0, 0) 

>>> parse("1996.07.10 AD at 15:08:56 PDT", ignoretz=True) 
datetime.datetime(1996, 7, 10, 15, 8, 56) 

>>> parse("Tuesday, April 12, 1952 AD 3:30:42pm PST", ignoretz=True) 
datetime.datetime(1952, 4, 12, 15, 30, 42) 

>>> parse("November 5, 1994, 8:15:30 am EST", ignoretz=True) 
datetime.datetime(1994, 11, 5, 8, 15, 30) 

>>> parse("3rd of May 2001") 
datetime.datetime(2001, 5, 3, 0, 0) 

>>> parse("5:50 A.M. on June 13, 1990") 
datetime.datetime(1990, 6, 13, 5, 50) 

は、ここでのドキュメントを見てみましょう:

http://labix.org/python-dateutil#head-c0e81a473b647dfa787dc11e8c69557ec2c3ecd2

1
>>> import datetime 
>>> datetime.datetime.strptime('05/10/09 18:00', '%d/%m/%y %H:%M') 
datetime.datetime(2009, 10, 5, 18, 0) 
>>> datetime.datetime.today() 
datetime.datetime(2009, 10, 5, 21, 3, 55, 827787) 

だから、あなたが使用するフォーマット文字列のいずれかを使用すると、特にtoday()を使用することができ、今日の日付を見ているdatetime.datetimeオブジェクトに場合や、変換することができます関数。

関連する問題