我注意到部署中的 version_id 在管理日志中表示为 ISO 时间戳。是否也可以将环境变量 CURRENT_VERSION_ID 解码为时间戳?一些例子:
2013-02-01T02:44:34Z 364988112448279806
2013-02-01T02:46:26Z 364988142569033474
2013-02-01T02:51:39Z 364988226566178837
我注意到部署中的 version_id 在管理日志中表示为 ISO 时间戳。是否也可以将环境变量 CURRENT_VERSION_ID 解码为时间戳?一些例子:
2013-02-01T02:44:34Z 364988112448279806
2013-02-01T02:46:26Z 364988142569033474
2013-02-01T02:51:39Z 364988226566178837
从另一个实际上并不相关的答案中,您可以将版本 ID右移 28 位:
version_id = long(self.request.environ['CURRENT_VERSION_ID'].split('.')[1])
timestamp = version_id >> 28 # epochtime
此外,您可以将其格式化为更易于阅读的形式,如下所示:
from datetime import datetime
version = datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
所以@ShayErlichmen 发现的这个神奇数字是 2^28。
看来您需要在 268935300.571429 中划分版本才能获得纪元时间。
我编写了一个简单的电子表格来对数字进行逆向工程,但它需要更多样本才能获得准确的数字。