格式化显示日期和月份的时间

时间:2015-07-30 22:50:59

标签: ruby-on-rails ruby datetime formatting

对于我正在处理的项目,我会以这种格式收到日期和时间:

2015-08-16 15:00:00 UTC 
yyyy-mm-dd hh-mm-ss UTC

如何将时间显示为“2015年8月16日星期六下午3:30”? (“15:00”也没问题。)

我如何制作它以便检查日期是否已经过去,以便它只显示未通过的日期?

2 个答案:

答案 0 :(得分:1)

  

我如何能够这样做,以便时间显示为" 2015年8月16日星期六下午3:30(15:00也没问题)?

Time.parse('2015-10-20 15:23 UTC').strftime('%A, %B %dth %Y at %l:%M%p')
#=> "Tuesday, October 20th 2015 at 3:23PM"

您可能需要稍微调整一下来修复后缀(1st2nd3rd等等)

  

我怎么做才能检查日期是否已经粘贴?

你可以这样做(我确定这是一种更简单的方式):

编辑:是的,有一种很多更简单的方法 - 请查看马特的答案。

require 'time'

if Time.parse(my_date).to_i - Time.now.to_i > 0
  # my_date is in the future.
end

答案 1 :(得分:1)

首先,通过TimeAPIDock)将您的字符串转换为Time.parse(string)对象。

之后,您可以使用所有Time课程。

time.strftime
time.past?