【发布时间】:2010-03-05 17:01:30
【问题描述】:
这是一个非常愚蠢的问题,所以我提前道歉!
我有两个用于事件开始和结束的时间戳。它们以 UTC 格式存储为 datetime.datetime。我需要做的是弄清楚活动的持续时间。
我尝试从另一个中减去一个,但收到错误:
回溯(最近一次通话最后): 02. 文件 '/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py',第 509 行,在 __call__ 03. handler.post(*groups) 04. 文件“/base/data/home/apps/.../3.340324527833140591/main.py”,第 441 行,在帖子中 05. call_record.Duration = call_record.CallStartTime - call_record.CallEndTime 06. 文件 '/base/python_lib/versions/1/google/appengine/ext/db/__init__.py',第 472 行,在 __set__ 07. 值 = self.validate(值) 08. 文件 '/base/python_lib/versions/1/google/appengine/ext/db/__init__.py',第 2322 行,有效 09. (self.name, self.data_type.__name__)) 10. BadValueError:属性持续时间必须是日期时间 11.CallStartTime、CallEndTime 和 Duration 都是 GAE 中的 db.DateTimeProperty() 类型。
我以前使用 django 时间来显示持续时间,但我需要做一些额外的计算来计算平均值。事件的持续时间。
非常感谢任何有关其他信息可能有帮助的建议或指示!
【问题讨论】:
-
不是那么笨,如果它们真的是 TZ == None,那么减法应该可以工作。你真的很喜欢数学很容易的 POSIX 时间戳。我能找到的唯一功能是 Calendar.timegm。