Chromium Code Reviews| Index: base/time/time_logging.cc | 
| diff --git a/base/time/time_logging.cc b/base/time/time_logging.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..7574eabc3709b29c991edcd569f970d3a0884def | 
| --- /dev/null | 
| +++ b/base/time/time_logging.cc | 
| @@ -0,0 +1,42 @@ | 
| +// Copyright 2014 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +// Resist the urge to make the output of these fancy. They are just for | 
| +// debugging. | 
| + | 
| +#include "base/time/time_logging.h" | 
| + | 
| +#include <iostream> | 
| + | 
| +#include "base/strings/stringprintf.h" | 
| +#include "base/time/time.h" | 
| + | 
| +namespace base { | 
| + | 
| +std::ostream& operator<<(std::ostream& os, const TimeDelta& time_delta) { | 
| + return os << time_delta.InSecondsF() << "s"; | 
| +} | 
| + | 
| +std::ostream& operator<<(std::ostream& os, const Time& time) { | 
| + Time::Exploded e; | 
| 
 
mmenke
2014/10/21 14:20:09
nit:  Google style guide strong discourages using
 
Adam Rice
2014/10/23 01:13:02
Done.
 
 | 
| + time.UTCExplode(&e); | 
| + // Use StringPrintf because iostreams formatting is painful. | 
| + return os << StringPrintf("%04d-%02d-%02d %02d:%02d:%02d.%03d UTC", | 
| + e.year, | 
| + e.month, | 
| + e.day_of_month, | 
| + e.hour, | 
| + e.minute, | 
| + e.second, | 
| + e.millisecond); | 
| +} | 
| + | 
| +std::ostream& operator<<(std::ostream& os, const TimeTicks& time_ticks) { | 
| + // This function formats a TimeTicks object as if it was a Time object. | 
| + const Time as_time = | 
| + Time::UnixEpoch() + (time_ticks - TimeTicks::UnixEpoch()); | 
| + return os << as_time; | 
| +} | 
| + | 
| +} // namespace base |