2011-07-20 105 views
2

有没有办法从反向漂亮的日期格式

"1 day ago", "1 week ago", "3 hours ago"

去像“星期二,2011年07月19 10:00:00”使用Python一些日期格式?

+2

是的。你有没有尝试过? – dhg

+0

[慢性(Ruby NLP日期/时间解析器)for python的可能重复?](http://stackoverflow.com/questions/719088/chronic-ruby-nlp-date-time-parser-for-python) – geoffspear

回答

1

在pyparsing维基This example支持以下情况:

today 
tomorrow 
yesterday 
in a couple of days 
a couple of days from now 
a couple of days from today 
in a day 
3 days ago 
3 days from now 
a day ago 
in 2 weeks 
in 3 days at 5pm 
now 
10 minutes ago 
10 minutes from now 
in 10 minutes 
in a minute 
in a couple of minutes 
20 seconds ago 
in 30 seconds 
20 seconds before noon 
20 seconds before noon tomorrow 
noon 
midnight 
noon tomorrow 
6am tomorrow 
0800 yesterday 
12:15 AM today 
3pm 2 days from today 
a week from today 
a week from now 
3 weeks ago 
noon next Sunday 
noon Sunday 
noon last Sunday 
2pm next Sunday 
next Sunday at 2pm 
0

我不知道是否有可用的库(如果有,我敢肯定,他们可以在Django源代码中找到 - 这听起来像他们一定想到的那种问题)。

但是,原则上我觉得这个问题太难了。你首先定义你的界限。例如:

  • 如果它发生在一天之内,我会拼出小时
  • 如果它发生在六天内,我将阐明天
  • 如果发生在4内的数几个星期,我会拼出来周
  • 数量[ETC]

然后使用datetime模块(特别是timedelta对象),并根据时间过滤掉你的欲望。基本版本应该在不到一个小时内运行。

再次 - 我鼓励你去寻找已经实现的解决方案,但是如果你不能找出一个实现这个目标的基本方法,恐怕你的Python技能可能会缺乏,你可能想通过重新发明方法来练习。