如何在普通的旧 Ruby 中模拟 SQL `timestamp`?

Posted

技术标签:

【中文标题】如何在普通的旧 Ruby 中模拟 SQL `timestamp`?【英文标题】:How do I simulate an SQL `timestamp` in plain old Ruby? 【发布时间】:2015-07-22 23:44:33 【问题描述】:

我通过执行以下操作将 datetime 的输出强制为 Zulu-Time

object.updated_at.utc.iso8601 # => "2013-05-12T10:47:01Z"

这适用于 datetime,但是当对象作为 timestamp 持久保存到数据库时,我得到了

"Sun, 12 May 2013 10:47:01 UTC +00:00"

这不是祖鲁时间字符串。

我可以解决这个问题

object.updated_at.to_time.utc.iso8601

但我现在正在尝试对这个修复进行单元测试,但我无法重现 timestamp 格式来测试它。

如何模拟 SQL timestamp 以使 .utc.iso8601 返回“Sun,2013 年 5 月 12 日 10:47:01 UTC +00:00”,但又不将其包装在一堆 ActiveRecord 等中?

【问题讨论】:

请注意Sun, 12 May... 不是有效的ISO 8601 format date/time 值... 奇怪的权利。因此我很难模拟它 【参考方案1】:

原来我的问题是我没有戴眼镜并且误读了我自己的测试代码。我会关闭问题,除非没有“因为我忘记戴眼镜而关闭问题”选项。

【讨论】:

题外话:这个问题是由一个无法再复制的问题或由于不戴眼镜导致的简单印刷错误引起的。 :)

以上是关于如何在普通的旧 Ruby 中模拟 SQL `timestamp`?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Razor 切换到普通的旧 HTML? [复制]

如何在 SQL Server 的触发器中获取多个字段的旧值和新值?

使用标准库Ruby将数据标记到Elasticsearch批量中

普通 SQL 分页

H2 数据库。如何在sql中将日期转换为秒?

STM32普通定时器(TIM2-7)的时钟源