如何在python中表示B.C.的日期时间

如何在python中表示B.C.的日期时间,python,django,datetime,Python,Django,Datetime,我正在创建一个关于历史的应用程序。但是当我需要用djangoDateTimeField创建一个字段来表示不列颠哥伦比亚省(又名基督之前)的日期时间时,我就被卡住了 罗马帝国起源于公元前27年。 到公元395年。我如何用pythondatetime或djangoDateTimeField表示from和to日期 我需要对这些字段进行一些进一步的日期计算,因此使用integer不是很合适,你知道吗?你也可以使用datautil 将其安装为: pip install datautil 然后将其用作:

我正在创建一个关于历史的应用程序。但是当我需要用django
DateTimeField
创建一个字段来表示不列颠哥伦比亚省(又名基督之前)的日期时间时,我就被卡住了

罗马帝国起源于公元前27年。 到公元395年。我如何用python
datetime
或django
DateTimeField
表示
from
to
日期


我需要对这些字段进行一些进一步的日期计算,因此使用
integer
不是很合适,你知道吗?

你也可以使用datautil

将其安装为:

pip install 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
来自datautil.date导入解析
fd=解析(u'Feb 1996')
打印fd
1996-02
fd.as_datetime()
datetime.datetime(1956,1,1,0,0)
bc=解析(u'1700BC')
印刷bc
-1700

这里还有一个问题。

另外,请参见2013年以后关于这个问题的讨论:


试试这个。有趣的实用程序。。。但是
dateutil
是否支持日期计算,例如日期比较?@Enix日期计算将与所有DateTimeField计算相同。您必须自己处理。无论何时计算当前日期和时间的持续时间或间隔,结果都应根据datautil结果中出现的减号(-)进行调整。感谢您的消息。。。但是当我使用您的代码运行时,出现了这个错误:
AttributeError:'tuple'对象没有属性'year'
。我正在使用python2.7。。它似乎没有包含太多的文档,也不太友好。我想知道如何开始…chris在这种情况下,问题不应该被标记为重复(将问题标记为重复不会损害问题的海报)@e4c5这是我的第一个冲动,但是,我不知道怎么做,所以我把我的答案贴出来,既作为一个温和的建议给提问者,也希望其他人能标记出来。有办法自己做吗?阅读“帮助中心”,我能找到的唯一一件事是:“版主和任何拥有3000声誉的人都可以通过点击“关闭”链接并输入他们认为是重复的问题的URL或标题来投票关闭问题。”我只是在建立自己的声誉。不过,很高兴知道这样的标记不会伤害提问者。我认为你必须在达到3000点之前标记它。我考虑过,但唯一可用的标记是:垃圾邮件、粗鲁或辱骂,需要版主干预。我想最后一个会起作用,但我不确定这是否会损害询问者的声誉,而且对于手头的任务来说,它似乎有些繁重。此外,由于我的声誉级别只有10面旗帜,我不愿意使用其中一面。似乎“已询问”也应该是一面旗帜:叹息:不管怎样,谢谢你。不用担心。我已经忘记了在我的销售代表升职之前的情况。谢谢你及时提醒。脚踏实地总是好的