| OLD | NEW |
| (Empty) | |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. |
| 4 |
| 5 |
| 6 """Provides common timestamp functions.""" |
| 7 |
| 8 import datetime |
| 9 import pytz |
| 10 |
| 11 |
| 12 def utctimestamp(dt): |
| 13 """Converts a datetime object into a floating point timestamp since the epoch. |
| 14 |
| 15 dt is the datetime to convert. If dt is a naive (non-tz-aware) object, it |
| 16 will implicitly be treated as UTC. |
| 17 """ |
| 18 epoch = datetime.datetime.utcfromtimestamp(0).replace(tzinfo=pytz.UTC) |
| 19 # This check is from http://stackoverflow.com/a/27596917/3984761. |
| 20 if dt.tzinfo is None or dt.tzinfo.utcoffset(dt) is None: |
| 21 dt = dt.replace(tzinfo=pytz.UTC) |
| 22 return (dt - epoch).total_seconds() |
| 23 |
| 24 |
| 25 def utcnow_ts(): # pragma: no cover |
| 26 """Returns the floating point number of seconds since the UTC epoch.""" |
| 27 return utctimestamp(datetime.datetime.utcnow()) |
| OLD | NEW |