Time.time: Work around a Python bug

There is a bug [1] in older versions of Python (reproduced up to 2.7.5
and 3.2.3) where time.strftime('%z') would always give '+0000' if it's
given an argument. It's closed as "not a bug", but appears to be fixed
in recent versions. To work around this, datetime and dateutil is used
now when available.

[1] http://bugs.python.org/issue1493676