【问题标题】:How to make Time.to_s(:db) with microseconds如何用微秒制作 Time.to_s(:db)
【发布时间】:2018-09-13 06:40:43
【问题描述】:

我想以微秒精度比较时间,所以我像这样创建了新的Time::DATA_FORMATS

 Time::DATE_FORMATS[:db_usec] = '%Y-%m-%d %H:%M:%S.%6N'

但是使用这种格式,时间是用当地时区格式化的。 我必须先更改UTC 的时间。

Post.created_at.utc.to_s(:db_usec)

我怎样才能写一个DATE_FORMATS:db 这样格式化UTC 中的时间?

【问题讨论】:

  • 你知道strftime ruby​​ 方法吗?
  • 是的,但我找不到 UTC 格式。
  • 日期时间默认存储在 UTC 中,你在 app.rb 中使用了不同的时区吗?
  • app.rb 用于sinatra,对吗?我在不同的时区配置我的 rails 应用程序。但是Time.to_s(:db) 无论如何都会以 UTC 时间返回字符串。
  • 你问的是DATE_FORMATS,还是DATA_FORMATS

标签: ruby-on-rails time


【解决方案1】:

您可以通过参考Rails api link 轻松更改它。

Time::DATE_FORMATS[:db_usec] = ->(time) { time.utc.strftime('%Y-%m-%d %H:%M:%S.%6N') }

【讨论】:

  • 我明白了,我可以将 lambda 与该方法一起使用。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-26
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
  • 2017-11-06
  • 1970-01-01
  • 2021-05-10
相关资源
最近更新 更多