首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby:从Ruby生成Google?

Ruby:从Ruby生成Google?
EN

Stack Overflow用户
提问于 2021-03-09 05:38:04
回答 2查看 783关注 0票数 2

这是一个模型blog

代码语言:javascript
复制
# id  :bigint(8)
#  created_at                  :datetime         not null
#  updated_at                  :datetime         not null

class Blog < ApplicationRecord

end

我想将模型的created_at和updated_at转换为google

代码语言:javascript
复制
blog = Blog.first
blog.created_at

如何在生成原型消息时将DateTime转换为google?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-20 08:21:36

库有方法可以做到这一点:

代码语言:javascript
复制
require 'google/protobuf/well_known_types'

# Convert ruby Time to protobuf value
time = Time.current
Google::Protobuf::Timestamp.new.from_time(time)

# Convert protobuf value to ruby Time
data = {:nanos=>801877000, :seconds=>1618811494}
Google::Protobuf::Timestamp.new(data).to_time

请参阅:L74#L74-L97

票数 4
EN

Stack Overflow用户

发布于 2021-03-26 07:52:24

如果您正在使用Rails,您可以使用以下方式:

代码语言:javascript
复制
## Convert Ruby DateTime to Google::Protobuf::Timestamp
time = DateTime.now
seconds = time.to_i
nanos = time.nsec
gpt = Google::Protobuf::Timestamp.new(seconds: seconds, nanos: nanos)


## Convert Google::Protobuf::Timestamp to ruby DateTime
micros = gpt.nanos / 10 ** 3
time2 = Time.at(gpt.seconds, micros)

参考文献

  1. ActiveSupport: DateTime#nsec
  2. 堆栈溢出:如何将google.protobuf.Timestamp转换为Ruby DateTime对象?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66541384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档