sample ser
python
Wrap Lines
Raw import json
import base64
from google.protobuf.timestamp_pb2 import Timestamp
from datetime import datetime
# Create and set timestamp (current time)
ts = Timestamp()
ts.GetCurrentTime()
print("\nSaved timestamp:")
print(f"Seconds: {ts.seconds}")
print(f"Nanos: {ts.nanos}")
# Serialize to binary
serialized = ts.SerializeToString()
# Encode as Base64 string
b64_str = base64.b64encode(serialized).decode('utf-8')
# Put into JSON with key "my_pb"
json_out = json.dumps({"my_pb": b64_str})
print("JSON Output:")
print(json_out)
# === Now decode it back ===
data = json.loads(json_out)
decoded_binary = base64.b64decode(data["my_pb"])
# Parse back into Timestamp
ts_parsed = Timestamp()
ts_parsed.ParseFromString(decoded_binary)
# Print result
print("\nParsed timestamp:")
print(f"Seconds: {ts_parsed.seconds}")
print(f"Nanos: {ts_parsed.nanos}")
print(f"As datetime: {datetime.utcfromtimestamp(ts_parsed.seconds + ts_parsed.nanos / 1e9)}")