Adi*_*ghi 2 ruby time epoch protocol-buffers
这个问题没有太多细节,我收到了一个时间类型为 的kafka 事件google.protobuf.Timestamp。这些 kafka 事件正在(通过 HTTP)发布到我的 rails 应用程序,我需要时间以 ruby 的日期时间格式而不是google.protobuf.Timestamp
将微秒转换为纳秒并使用 Time.at(seconds, microseconds_with_frac) ? time
epoch_micros = timestamp.nanos / 10 ** 6
Time.at(timestamp.seconds, epoch_micros)
Run Code Online (Sandbox Code Playgroud)
供参考:http : //ruby-doc.org/core-2.2.0/Time.html
google-protobufgem 有众所周知的类型的类,例如google.protobuf.Timestamp等。
您可以使用以正确的方式从 protobufGoogle::Protobuf::Timestamp.new(data).to_time获取值。Time
例子:
> require 'google/protobuf/well_known_types'
> data = {:nanos=>801877000, :seconds=>1618811494}
> Google::Protobuf::Timestamp.new(data)
=> <Google::Protobuf::Timestamp: seconds: 1618811494, nanos: 801877000>
> Google::Protobuf::Timestamp.new(data).to_time
=> 2021-04-19 14:51:34.801877 +0900
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2296 次 |
| 最近记录: |