R为什么POSIXlt之间的区别有小数部分?

问题描述

为什么POSIXlt之间的区别具有小数部分,而Date之间的区别却没有?

示例:

as.POSIXlt("2015-12-10",format = "%Y-%m-%d")-as.POSIXlt("2015-10-07",format = "%Y-%m-%d")

返回64.04167

as.Date("2015-12-10",format = "%Y-%m-%d")-as.Date("2015-10-07",format = "%Y-%m-%d")

返回64(正确值)

为什么会有不同的行为?

解决方法

这些小数点正好等于一小时,这是从DST切换期间发生的。

class Activity(models.Model):
   title = models.CharField(max_length=100)
   content = models.TextField()
   file = models.FileField(blank=True)
   course = models.ForeignKey(Course,related_name='course_id' on_delete=models.CASCADE)
   parent = models.ForeignKey(Partition,related_name='parent_id' on_delete=models.CASCADE)

   def __str__(self):
      return self.title

指定没有DST的时区,您会得到以下提示:

0.04167 * 24
#[1] 1.00008
#some rounding error