我可以从DateTime获取星期几作为数字吗?

时间:2013-06-28 19:07:15

标签: ruby ruby-1.8.7

如果我有一个Date对象,我可以将它作为整数,星期一= 1,星期日= 7得到星期几,如下所示:

date.cwday

我可以对Rails中的DateTime对象做同样的事情吗?我知道我可以使用strftime,但我正在循环中进行一些操作,其中包含大量数据集,可能包含数十万个项目,并且如果可能的话,我们希望避免在字符串和整数之间进行额外的转换。 / p>

2 个答案:

答案 0 :(得分:5)

DateTime类继承cwday类的Date方法,是的。我建议访问www.ruby-doc.org。 DateDateTime位于标准(非核心)库中。请记住选择正确的红宝石版本。

此外,如果您担心性能,使用DateTime#cwday时不应有任何性能损失,因为该方法是从Date继承的(未被覆盖)。另请注意,在ruby 1.8.7中,这两个类都是用纯红宝石编写的;而在1.9中,它们是编译的C代码(ruby-doc显示date_core.c作为源文件)。您的日期代码可能会在1.9中运行得更快。

答案 1 :(得分:4)

我想是的

1.9.3-p392 :002 > DateTime.new
 => Mon, 01 Jan -4712 00:00:00 +0000
1.9.3-p392 :003 > _.cwday
 => 1