当前位置: 首页 > 知识库问答 >
问题:

最有效的方法是在铁轨上获得以分钟为单位的时间差

鄢承运
2023-03-14

在我的Rails应用程序中,我有一个名为Schedule的表,其中的字段称为到达,我输入了时间,我猜由于某种原因,它默认以以下格式存储在UTC中

2000-01-01 07:37:00 UTC

在我的控制器中,当我做时间之类的事情时。现在,我将得到这样的时间

2015-04-26 23:35:46 -0400

我的问题是需要得到两个时间在同一个区域或什么的,这样我就可以计算差异。

我知道我可以增加4个小时的时间。现在,将其设为utc,但如何在几分钟内获得它们之间的差异?我想到了一个愚蠢的黑客,如果我在时间上加4个小时。现在它将成为utc,然后减去两者之间的差值。然而,存储在db中的时间有2001年的日期,而这一个有2015年的日期。那么它会工作吗?我会建议你的答案或方法。谢谢

共有1个答案

马航
2023-03-14

这不是问题,Ruby在内部处理时区。

time1 = DateTime.parse('2000-01-01 10:00:00 UTC')
time2 = DateTime.parse('2000-01-01 10:00:00 -0100')
time2 - time1
# => (1/24)

也就是说,Ruby 已经知道 UTC 中的同一时间与 -0100 中的相同时间之差为一小时。时差运算符已经在做正确的事情,如果你让它:)

但是,DateTime是Ruby,Time是C - 前者具有更好的API,并且可以与数据库很好地配合使用,但后者更快。

编辑:这里有一个使用< code>Time的例子,还是一样的:

time1 = Time.new(2000, 1, 1, 10, 0, 0, "+00:00")
time2 = Time.new(2000, 1, 1, 10, 0, 0, "-01:00")
time2 - time1
# => 3600.0

编辑:年份 <罢工> 2999 2000

 类似资料:
  • 问题内容: 如何在PHP中计算两个日期时间之间的分钟差? 问题答案: 从过去的一减去最近的一并除以60。 时间以Unix格式完成,因此它们只是一个很大的数字,显示从

  • 问题内容: 在Java 8和更高版本中可用的新JSR 310 日期API(java.time包)中的类中,javadoc说: 此类以秒和纳秒为单位对时间量或时间量进行建模。 可以使用其他基于持续时间的单位(例如分钟和小时)来访问它 。此外,可以使用DAYS单位并将其视为等于24小时,因此忽略了夏时制的影响。 那么,为什么以下代码会崩溃? 这引发了: 那么从持续时间对象中提取分钟和小时的推荐方法是什

  • 问题内容: 如果我有两个这样的日期时间: 如何以以下格式获取这些日期时间之间的差异: 我用 但是我只有时间。 问题答案: 试试这个- 询问: 输出:

  • 对于Java8及更高版本中新的JSR 310 date API(Java.time包)中的类,javadoc表示: 那么,从duration对象中提取分钟和小时的推荐方法是什么?我们必须自己从秒数来计算吗?为什么要这样实施?

  • 问题内容: 我需要获取两个日期之间的分钟数。我知道Joda是最适合使用的,但这是针对Android项目的,因此,我更喜欢使用一些外部库,并且我正在构建的应用程序不需要计算得很精确。 但是,我正在使用的代码似乎无法正常工作。我正在尝试获取“ 11/21/2011 7:00:00 AM”和“ 11/21/2011 1:00:00 PM”之间的分钟数(应该为360分钟),但是代码我’m using返回0

  • 问题内容: 如何为Python中以下时间戳计算以分钟为单位的时间差? 问题答案: