2016-12-29 8 views
1

私は履歴についてのアプリケーションを作成しています。しかし、B.C.(aka Before Christ)の日付時刻を表すために、django DateTimeFieldを使ってフィールドを作成する必要があるとき、私は立ち往生しています。B.C.の日付時刻の表記方法Python内

例えば、ローマ帝国の紀元前27年。 395 ADに。 fromtoの日付をPython datetimeまたはdjango DateTimeFieldで表すにはどうすればよいですか?

integerは、これらのフィールドに日付の計算を追加する必要があります。これは問題ありません。

+1

このhttp://code.activestate.com/lists/python-list/623672/を試してみてください。 –

答えて

1

また、datautilを使用することもできます。ここで

from datautil.date import parse 

fd = parse(u'Feb 1996') 
print fd 

<class 'datautil.date.FlexiDate'> 1996-02 

fd.as_datetime() 
datetime.datetime(1956, 1, 1, 0, 0) 

bc = parse(u'1700BC') 
print bc 
<class 'datautil.date.FlexiDate'> -1700 

useful linkです:次にとしてそれを使用

pip install datautil 

Datautil

は、としてそれをインストールしてください。

+0

興味深いユーティリティ...しかし、 'dateutil'は日付の比較のような日付の計算をしますか? – Enix

+0

@Enix日付の計算は、すべてのDateTimeFieldの計算と同じです。あなたはそれを自分で処理する必要があります。現在の日付と時間から継続時間またはギャップを計算するたびに、結果はdatautil結果に表示されたマイナス( - )記号に従って調整する必要があります。 –

+0

あなたのメッセージをありがとう...しかし、私はあなたのコードを実行するとこのエラーが発生しました: 'AttributeError: 'tuple'オブジェクトに属性 'year''がありません。私はpython2.7を使用しています..それは多くのドキュメントが含まれていないようだ、と非常にユーザーフレンドリーではない。私はそれから始める方法が不思議です... – Enix

0

また、SOに2013年からこの同じ質問についての議論を参照してください。

BC dates in Python

+0

これらの場合、クリスは重複としてマークされるべきではありません(重複としてマークされて質問のポスターを害することはありません) – e4c5

+0

@ e4c5それは私の最初の衝動でしたそのようにする方法を見つけられなかったので、私は質問者に穏やかな提案として、そして他の誰かがそれに印をつけることを期待して私の答えを投稿しました。それを自分で行う方法はありますか? 「ヘルプセンター」を通じて読んだことは、「モデレーターと3000名の評判を持つ人は、「クローズ」リンクをクリックして質問のURLまたはタイトルを入力することで質問を閉じることができますそれが重複していると信じています。私は自分の評判を構築しています。しかし、このようなマーキングは尋問者に害を及ぼすものではないことを知っておくとよいでしょう。 –

+0

私はあなたが3000ヒットするまでそれをフラッグしなければならないと思う。 – e4c5