Time-date as an integer
rschroev_nospam_ml at fastmail.fm
Tue Aug 24 09:50:42 CEST 2004
Charles Hixson wrote:
> This is a concept, not a finished program, and an extract from a class
> at that...so forgive any illegalities, but:
> import datetime;
> def calcNodeId(self):
> t = datetime.utcnow()
> val = t.year * 133920000000 + # 12 months
> t.month * 11160000000 + # 31 days
> t.hour * 3600000000 + # 60 minutes
> t.minute * 60000000 + # 60 seconds
> t.second * 1000000 + t.microsecond
> if val <= self._dTime:
> val = self._dTime + 1
> self._dTime = val
> return val
> This is the best that I've been able to come up with in getting a
> date-time as an integer. It feels like one of the time or date
> libraries should have a better solution, but if so, I haven't found it.
> Can anyone suggest a better approach?
That gives only second precision, though.
Calculations such as the one above can be simplified somewhat by grouping:
val = t.microsecond +
1000000 * (t.second +
60 * (t.minute +
60 * (t.hour +
24 * (t.day + # (you forgot this one)
31 * (t.month +
12 * year)))))
Or with less indentation, I used it here just to make the grouping clear.
"Codito ergo sum"
More information about the Python-list