strptimestrftime之间有什么区别?我看到strptimeDateTime类中的一个方法,strftimeTime类中的一个方法.

  1. TimeDateTime之间有什么区别,除了它们有不同的核心方法?Ruby文档中对Time类的解释很有帮助,但对DateTime类的解释只是"datetime".还有Date类,它提供DateDateTime.帮我弄明白.
  2. 我看到strptime,我想把它念成"脱衣舞时间",但这没有意义.有没有好的记忆工具?
  3. strptimestrftime到底是什么意思?
  4. 你怎么记得哪个做什么?

推荐答案

TimeDateTime之间的差异与实现有关.DateTime的大量功能来自Rails世界,是一个任意的日期和时间.它更像是一个基于日历的系统.自协调世界时1970年1月1日起,Time以秒为单位,与时区无关.在一些系统上,它被限制为1901到2038之间的值,这是对传统上该值存储为带符号32位整数的限制,但较新版本的Ruby可以处理更大的范围,根据需要使用64位值或BigNum.

简而言之,DateTime是从Rails中的数据库中得到的,而Ruby传统上使用的是时间.如果你使用的是日期很重要的价值观,你想知道月底或六周前的哪一天,请使用DateTime.如果你只是在测量经过的时间,而不在乎它,那就用时间.如果需要,它们很容易在两者之间转换.

另一方面,Date只是一个日历日期,没有任何关联的时间.你可能想在与时间无关的地方使用这些.

strptime是"解析时间"的缩写,strftime是"格式化时间".也就是说,strptimestrftime相反,尽管它们方便地使用相同的格式规范.我很少看到使用strptime,因为DateTime.parse通常很擅长了解正在发生的事情,但是如果你真的需要详细说明,一定要使用遗留解析器.

Ruby相关问答推荐

为什么 ruby​​ 获得证书信任链与 gnutls-cli 不同

为什么安全导航比在 Rails 中使用 try 更好?

将块传递给方法传递给Ruby中的另一个方法

从 Time 对象获取下/上个月

Ruby 连接字符串并添加空格

如何在两个浮点数之间的范围内最好地创建一个随机浮点数

如何将消息附加到 RSpec 判断?

是否有等效于 `Array::sample` 的哈希值?

如何将 STDOUT 捕获到字符串?

扩展self 和module_function一样吗?

如果尚未定义,则设置 Ruby 变量

Broken pipe (Errno::EPIPE)

如何从 SystemStackError 中获取回溯:堆栈级别太深?

在 ruby​​ 异常中捕获行号

如何合并 Ruby 哈希

哪个键/值存储最有前途/最稳定?

使用哈希值呈现 ERB 模板

从数组 Ruby 中删除元素

Array.empty 的相反方法是什么?或 [].empty?在Ruby中

如何使用 Ruby-Rails 删除文件夹的所有内容?