我无法理解以下功能:
time = timezone.now() - datetime.timedelta(days=30)
首先,timezone.now()给出了Django中设置的时间…现在是datetime.timedelta(days=30)
它是否将django中的内部设置用作set setting.py或其他设置。
第二,如果是的话…应该是:变量时间不比当前时区晚30天
在下面的函数中
def test_was_published_recently_with_old_question(self):
"""
was_published_recently() should return False for questions whose
pub_date is older than 1 day.
"""
time = timezone.now() - datetime.timedelta(days=30)
old_question = Question(pub_date=time)
self.assertEqual(old_question.was_published_recently(), False)
这怎么会让我大一天…我想我的问题是不理解
完全地
我非常感谢你的帮助。我是python和中级程序员的新手……但没有花太多时间。
我认为你对测试方法的描述感到困惑。
这个测试方法通过不返回那些超过1天的问题来测试
was_published_recently()
是否正确工作。为了测试它,他们所做的是将post的日期设置为比今天少30天(即
- datetime.timedelta(days=30)
),然后检查该post的was_published_today()
是真是假。如果它是假的,那么测试就通过了。
首先
timezone.now()
只是datetime.datetime.now()
的一个“改进”版本,它也可以识别时区。没有django内部时间。
timezone.now()
实际上就是datetime函数+时区。timedelta
那只是一个区别,一个物理上使用的三角形。它对时间一无所知。当你从一个时间减去/加上一个增量时,你会根据时间做相应的事情。
所以今天是2015-09-10。如果你加上一天(
timedelta(days=1)
),那显然是2015年9月11日。检查python中的某个内容是否比一个月新,方法是从现在开始减去30天(如果您愿意,可以减去1个月),然后比较节省的时间是否比这段时间大。
为了更好地理解日期时间比较,可以使用
timestamp()
函数将它们转换为unixtime,并将这些抽象的东西看作简单的数字:输出
在不转换为时间戳打印的情况下执行此操作
a month ago is smaller
。首先
timezone.now()
只是datetime.datetime.now()
的一个“改进”版本,它也可以识别时区。没有django内部时间。
timezone.now()
实际上就是datetime函数+时区。timedelta
那只是一个区别,一个物理上使用的三角形。它对时间一无所知。当你从一个时间减去/加上一个增量时,你会根据时间做相应的事情。
所以今天是2015-09-10。如果你加上一天(
timedelta(days=1)
),那显然是2015年9月11日。检查python中的某个内容是否比一个月新,方法是从现在开始减去30天(如果您愿意,可以减去1个月),然后比较节省的时间是否比这段时间大。
为了更好地理解日期时间比较,可以使用
timestamp()
函数将其转换为unixtime,并将这些抽象的内容看作简单的数字:输出
在不转换为时间戳打印的情况下执行此操作
a month ago is smaller
。相关问题 更多 >
编程相关推荐