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 функции Date-Time не очень хорошо продуманы (по сравнению, например, с .NET), поэтому для других функций вам придется использоватьнекоторые драгоценные камни.
Хорошо, что использование этих драгоценных камней действительно похоже на встроенную реализацию 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
.
Держите Расчет времени под рукой.