如何解析ActiveSupport :: TimeWithZone实例以获取日期,工作日,月份和年份?

时间:2019-05-16 09:59:21

标签: ruby-on-rails ruby

我正在使用Rails版本5.2.2.1,并且从多个记录中的ActiveSupport::TimeWithZone字段返回了starts_on的实例。

一个示例对此进行了评估:

Thu, 05 Apr 2019 16:32:41 BST +01:00

有人可以告诉我将其转换为以下四种格式中的一种的好方法:

5 April 2019(在可能的情况下,将日期四舍五入到一位数字,以完整的单词表示月份,以数字表示年份)

05(天为两位数,保留前9个数字表示1-9)

Thursday(全天,不缩写词)

April(完整的月份,未缩写的单词)

我在这里的其他地方找不到解决方案,该解决方案没有一种有效的方法来获取完整的,未缩写的月份和工作日名称。

当然,该解决方案将需要在模拟任何日期的ActiveSupport::TimeWithZone实例上工作,而不仅仅是我4月5日的示例。

1 个答案:

答案 0 :(得分:1)

结帐ruby DateTimestrftime

Date.today    
=>Thu, 16 May 2019

Date.today.strftime('%A')  
=> "Thursday" # you week name

Date.today.strftime('%B')
=> "May" # month name  

Date.today.strftime('%d %A %b %Y')
=> "16 Thursday May 2019"

10.days.ago.strftime('%-d %b %Y')
=> "6 May 2019" # gives date without 0