strptime
和strftime
有什么区别?我看到strptime
是DateTime
类中的方法,而strftime
是Time
类中的方法。
Time
和DateTime
有什么区别,除了核心方法不同之外? Ruby文档中对Time
类的解释很有帮助,但 DateTime
的解释只是说“datetime”。还有 Date
类,它说它提供Date
和DateTime
。帮助我理解这一点。 strptime
,我想将其发音为“strip time”,但这没有任何意义。有一个好的助记符设备吗? strptime
和strftime
是什么意思? 最佳答案
Time
和DateTime
之间的差异与实现有关。大量的DateTime
功能来自Rails世界,并且是一天中任意时间的日期。它更多是基于日历的系统。 Time
以自UTC 1970年1月1日以来的秒数进行度量,并且与时区无关。在某些系统上,该值限制为1901年至2038年之间的值,这是传统上以32位有符号整数存储此值的限制,但较新版本的Ruby可以使用64位值或BigNum处理更大的范围按要求。
简而言之,DateTime
是您从Rails的数据库中获得的,其中时间是Ruby传统上使用的时间。如果您正在使用日期很重要的值,并且想知道月底或提前六周的日期,请使用DateTime。如果您只是在测量经过的时间,而不在乎,请使用时间。如有必要,它们之间很容易转换。
另一方面,Date
只是一个日历日期,没有任何关联的时间。您可能想在与时间无关的地方使用它们。strptime
代表“解析时间”,而strftime
代表“格式化时间”。也就是说,strptime
与strftime
相反,尽管它们使用相同的格式规范。我很少见过使用strptime
,因为DateTime.parse
通常很擅长了解发生的事情,但是如果您真的需要拼写出来,请务必使用旧式解析器。