论坛首页 入门技术论坛

Ruby如何随心所欲的显示时间 How to do friendly date formatting in Ruby

浏览 5729 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-23  
找到一篇老外的帖子,很不错,希望对新手有帮助。

比如要显示 2006-10-23 18:48 =>  Time.now.strftime("%Y-%m-%d %H:%M")

---------

At lunch today I wanted to add today’s date onto a Rails page.

<%= Time.now %>

works relatively well enough, except it gives the date in a pretty ugly format… like this:

Thu Aug 31 13:51:33 US Mountain Standard Time 2006

I don’t need that much information and I’d like the day and month to be fully spelled out. I figured that reformatting the date should be awfully simple. It is, but it isn’t straightforward and it was difficult to find any documentation about it.

I looked in the rdoc for the ruby API. I looked at the “Time” class and just didn’t see what I was looking for. There’s so much there, I just didn’t look hard enough. I looked in the pick-axe book. No help there either. Finally, I went back to my copy of the rails mailing list and found the answer! Then I went back into the API and found it there as well.

The magic method is strftime. Find the time class in the api and scroll waaaaaaaaaaaaaaaaay down to strftime. With this method, you can pretty much spit out time and date strings however you’d like. Here’s what the API says:


time.strftime( string ) => string

Formats time according to the directives in the given format string. Any text not listed as a directive will be passed through to the output string.

Format meaning:

  %a - The abbreviated weekday name (``Sun'')
  %A - The  full  weekday  name (``Sunday'')
  %b - The abbreviated month name (``Jan'')
  %B - The  full  month  name (``January'')
  %c - The preferred local date and time representation
  %d - Day of the month (01..31)
  %H - Hour of the day, 24-hour clock (00..23)
  %I - Hour of the day, 12-hour clock (01..12)
  %j - Day of the year (001..366)
  %m - Month of the year (01..12)
  %M - Minute of the hour (00..59)
  %p - Meridian indicator (``AM''  or  ``PM'')
  %S - Second of the minute (00..60)
  %U - Week  number  of the current year,
          starting with the first Sunday as the first
          day of the first week (00..53)
  %W - Week  number  of the current year,
          starting with the first Monday as the first
          day of the first week (00..53)
  %w - Day of the week (Sunday is 0, 0..6)
  %x - Preferred representation for the date alone, no time
  %X - Preferred representation for the time alone, no date
  %y - Year without a century (00..99)
  %Y - Year with century
  %Z - Time zone name
  %% - Literal ``%'' character

   t = Time.now
   t.strftime("Printed on %m/%d/%Y")   #=> "Printed on 04/09/2003"
   t.strftime("at %I:%M%p")            #=> "at 08:56AM"


So, once found it was easy enough. Here’s what I put in my .rhtml file:

<%= Time.now.strftime("%A %B %d, %Y") %>

which spits out: “Thursday August 31, 2006”.

Also, this:

<%= Time.now.strftime("%I:%M %p") %>

spits out something like: “01:51 PM”.

Again, this is probably very elementary for most RubyNoob readers, but I’ve posted it in part as a reference for me to easily find when I need it again.

I was really sure that Rails had some quick/easy way to do this, but I couldn’t find it. If there’s an easier Railsish way to do this, please let me know in the comments. Thanks!

原文地址:http://rubynoob.com/articles/2006/08/31/how-to-do-friendly-date-formatting-in-ruby
   发表时间:2006-10-25  
好贴..要顶.........

这么说好似太...noob了...


不过还是那个问题...
人人知道时间问题...

记得java的时间问题么...
他们这帮人只考虑自己..不给其他语言和文化的人想想么?

阳历的话..要自己写了不成...

有空研究下..应该有对应的方法罢...
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics