ruby でISO 8601標準のすべての日付、時刻、期間、および間隔の使用の実装は既にありますか? 年、月、日、day_of_the_week、week、hour、minutes、is_duration?、has_recurrence? などの詳細を設定および取得できる Class のようなものを意味します。など、文字列に設定してエクスポートすることもできますか?
質問する
1280 次
2 に答える
3
require 'time'
time = Time.iso8601 Time.now.iso8601 # iso8601 <--> string
time.year # => Year of the date
time.month # => Month of the date (1 to 12)
time.day # => Day of the date (1 to 31 )
time.wday # => 0: Day of week: 0 is Sunday
time.yday # => 365: Day of year
time.hour # => 23: 24-hour clock
time.min # => 59
time.sec # => 59
time.usec # => 999999: microseconds
time.zone # => "UTC": timezone name
時間を見てください。たくさんのものが入っています。
残念ながら、Rubyの組み込みの日時関数は(たとえば.NETと比較して)よく考えられていないようです。そのため、他の機能にはいくつかのgemを使用する必要があります。
これらのgemを使用すると、Rubyの実装が組み込まれているように感じられるのは良いことです。
最も有用なのは、おそらくActiveSupport(Rails 3)からの時間計算です。
レールは必要ありませんが、この小さなライブラリだけが必要ですgem install activesupport
。
その後、あなたはすることができます:
require 'active_support/all'
Time.now.advance(:hours => 1) - Time.now # ~ 3600
1.hour.from_now - Time.now # ~ 3600 - same as above
Time.now.at_beginning_of_day # ~ 2010-11-24 00:00:00 +1100
# also at_beginning_of_xxx: xx in [day, month, quarter, year, week]
# same applies to at_end_of_xxx
あなたができることは本当にたくさんあります、そして私はあなたがあなたのニーズに非常によく合うものを見つけると信じています。
irb
したがって、ここで抽象的な例を示す代わりに、そこから要求することを試してみることをお勧めしますactive_support
。
時間計算を手元に置いておきます。
于 2010-11-16T03:30:42.553 に答える