=== modified file 'bzrlib/doc_generate/__init__.py'
--- a/bzrlib/doc_generate/__init__.py	2011-12-18 15:28:38 +0000
+++ b/bzrlib/doc_generate/__init__.py	2016-04-09 13:56:30 +0000
@@ -16,6 +16,9 @@
 
 from __future__ import absolute_import
 
+import datetime
+import os
+
 
 def get_module(target):
     mod_name = "bzrlib.doc_generate.autodoc_%s" % (target)
@@ -25,3 +28,14 @@
         mod = getattr(mod, comp)
     return mod
 
+
+def get_autodoc_datetime():
+    """Obtain the datetime to use for timestamps embedded in generated docs.
+
+    :return: A `datetime` object
+    """
+    try:
+        return datetime.datetime.utcfromtimestamp(
+            int(os.environ['SOURCE_DATE_EPOCH']))
+    except (KeyError, ValueError):
+        return datetime.datetime.utcnow()

=== modified file 'bzrlib/doc_generate/autodoc_bash_completion.py'
--- a/bzrlib/doc_generate/autodoc_bash_completion.py	2011-12-19 13:23:58 +0000
+++ b/bzrlib/doc_generate/autodoc_bash_completion.py	2016-04-09 13:53:05 +0000
@@ -18,11 +18,10 @@
 
 from __future__ import absolute_import
 
-import time
-
 import bzrlib
 import bzrlib.help
 import bzrlib.commands
+from bzrlib.doc_generate import get_autodoc_datetime
 
 
 def get_filename(options):
@@ -30,12 +29,11 @@
 
 
 def infogen(options, outfile):
-    t = time.time()
-    tt = time.gmtime(t)
+    d = get_autodoc_datetime()
     params = \
            { "bzrcmd": options.bzr_name,
-             "datestamp": time.strftime("%Y-%m-%d",tt),
-             "timestamp": time.strftime("%Y-%m-%d %H:%M:%S +0000",tt),
+             "datestamp": d.strftime("%Y-%m-%d"),
+             "timestamp": d.strftime("%Y-%m-%d %H:%M:%S +0000"),
              "version": bzrlib.__version__,
              }
 

=== modified file 'bzrlib/doc_generate/autodoc_man.py'
--- a/bzrlib/doc_generate/autodoc_man.py	2015-03-14 23:44:01 +0000
+++ b/bzrlib/doc_generate/autodoc_man.py	2016-04-09 13:53:10 +0000
@@ -26,12 +26,12 @@
 PLUGINS_TO_DOCUMENT = ["launchpad"]
 
 import textwrap
-import time
 
 import bzrlib
 import bzrlib.help
 import bzrlib.help_topics
 import bzrlib.commands
+from bzrlib.doc_generate import get_autodoc_datetime
 
 from bzrlib.plugin import load_plugins
 load_plugins()
@@ -44,12 +44,12 @@
 
 def infogen(options, outfile):
     """Assembles a man page"""
-    t = time.time()
-    tt = time.gmtime(t)
+
+    d = get_autodoc_datetime()
     params = \
            { "bzrcmd": options.bzr_name,
-             "datestamp": time.strftime("%Y-%m-%d",tt),
-             "timestamp": time.strftime("%Y-%m-%d %H:%M:%S +0000",tt),
+             "datestamp": d.strftime("%Y-%m-%d"),
+             "timestamp": d.strftime("%Y-%m-%d %H:%M:%S +0000"),
              "version": bzrlib.__version__,
              }
     outfile.write(man_preamble % params)

