Some basic operations on Ruby processing time, And ruby processing basic operations

Source: Internet
Author: User

Some basic operations on Ruby processing time, And ruby processing basic operations

Get the current date and time:

The following is a simple example to get the current date and time:

#! / usr / bin / ruby -w

time1 = Time.new

puts "Current Time:" + time1.inspect

# Time.now is a synonym:
time2 = Time.now
puts "Current Time:" + time2.inspect

This will produce the following result:

Current Time: Mon Jun 02 12:02:39 -0700 2008
Current Time: Mon Jun 02 12:02:39 -0700 2008

Get the date and time of the component:

We can use the Time object to get the components of the date and time. The following example shows the same:

#! / usr / bin / ruby -w

time = Time.new

# Components of a Time
puts "Current Time:" + time.inspect
puts time.year # => Year of the date
puts time.month # => Month of the date (1 to 12)
puts time.day # => Day of the date (1 to 31)
puts time.wday # => 0: Day of week: 0 is Sunday
puts time.yday # => 365: Day of year
puts time.hour # => 23: 24-hour clock
puts time.min # => 59
puts time.sec # => 59
puts time.usec # => 999999: microseconds
puts time.zone # => "UTC": timezone name

This will produce the following result:

Current Time: Mon Jun 02 12:03:08 -0700 2008
2008
6
2
1
154
12
3
8
247476
UTC

Time.utc, Time.gm and Time.local functions:

The two functions can be used to format dates in a standard format as follows:

# July 8, 2008
Time.local (2008, 7, 8)
# July 8, 2008, 09:10 am, local time
Time.local (2008, 7, 8, 9, 10)
# July 8, 2008, 09:10 UTC
Time.utc (2008, 7, 8, 9, 10)
# July 8, 2008, 09:10:11 GMT (same as UTC)
Time.gm (2008, 7, 8, 9, 10, 11)

The following example, to get all components in an array in the following format:

[sec, min, hour, day, month, year, wday, yday, isdst, zone]

Try the following:

#! / usr / bin / ruby -w

time = Time.new

values = time.to_a
p values

This will produce the following result:

[26, 10, 12, 2, 6, 2008, 1, 154, false, "MST"]

This array can be passed to Time.utc or Time.local functions to get different date formats as follows:

#! / usr / bin / ruby -w

time = Time.new

values = time.to_a
puts Time.utc (* values)

This will produce the following result:

Mon Jun 02 12:15:36 UTC 2008

Follow the way to get the internal representation (depending on the platform) seconds since epoch:

# Returns number of seconds since epoch
time = Time.now.to_i

# Convert number of seconds into Time object.
Time.at (time)

# Returns second since epoch which includes microseconds
time = Time.now.to_f

Time zone and daylight saving time:

You can use a Time object to get all the relevant time zone and daylight saving time as follows:

time = Time.new

# Here is the interpretation
time.zone # => "UTC": return the timezone
time.utc_offset # => 0: UTC is 0 seconds offset from UTC
time.zone # => "PST" (or whatever your timezone is)
time.isdst # => false: If UTC does not have DST.
time.utc? # => true: if t is in UTC time zone
time.localtime # Convert to local timezone.
time.gmtime # Convert back to UTC.
time.getlocal # Return a new Time object in local zone
time.getutc # Return a new Time object in UTC

Format time and date:

There are various ways to format the date and time. Here is an example to illustrate a few:

#! / usr / bin / ruby -w
time = Time.new

puts time.to_s
puts time.ctime
puts time.localtime
puts time.strftime ("% Y-% m-% d% H:% M:% S")

This will produce the following result:

Mon Jun 02 12:35:19 -0700 2008
Mon Jun 2 12:35:19 2008
Mon Jun 02 12:35:19 -0700 2008
2008-06-02 12:35:19

 Time arithmetic:

Simple arithmetic can be done in time as follows:

now = Time.now # Current time
puts now

past = now-10 # 10 seconds ago. Time-number => Time
puts past

future = now + 10 # 10 seconds from now Time + number => Time
puts future

diff = future-now # => 10 Time-Time => number of seconds
puts diff

This will produce the following result:

Thu Aug 01 20:57:05 -0700 2013
Thu Aug 01 20:56:55 -0700 2013
Thu Aug 01 20:57:15 -0700 2013
10.0

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.