Veo que hay un objeto de marca de tiempo pero no parece funcionar. Usando Python 3.6
$ pip install protobuf3En pitón:
from google.protobuf.timestamp_pb2 import Timestamp timestamp = Timestamp() timestamp.GetCurrentTime()No se devuelve nada. ¿Qué estoy haciendo mal?
ARRGGG Creo que hubo un problema de entorno virtual. ¡Ahora funciona!
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32 >>> from google.protobuf.timestamp_pb2 import Timestamp >>> timestamp = Timestamp() >>> timestamp.GetCurrentTime() >>> print(timestamp) seconds: 1521497361 nanos: 600455000 >>>timestamp seconds: 1521497361 nanos: 600455000Los únicos dos argumentos para construir una marca de tiempo protobuf son segundos y nanos. Se definen como los segundos de la Época (1970-01-01 00:00:00). Entonces podemos hacer:
import datetime from google.protobuf.timestamp_pb2 import Timestamp t = datetime.datetime.now().timestamp() seconds = int(t) nanos = int(t % 1 * 1e9) proto_timestamp = Timestamp(seconds=seconds, nanos=nanos)