Adding Postgres and ActiveRecord
Getting started - adding dependencies to your project
Guides, tutorials and labs to accompany CMU's Programming for Online Prototypes (49-714).
Everything you need to know about building microservices for the web with Ruby and Sinatra.
Ruby has some great features for working with dates and times.
time = Time.now #returns the time today
time = Time.new( 2017, 10, 01, 2, 2, 2) # returns the time on Oct 1st 2017 at 02:02:02 AM
time.monday? #=> false
time.year #=> 2017
time = time + 2.days # returns Oct 3rd 2017 at 02:02:02 AM
Neat! and there’s lots more
time = Time.new
## Components of 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
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
But printing the time out and giving a nice readable format to a user would be lovely. We can use to_s
but we get something like this
Tues Oct 03 02:02:02 -0500 2017
That is not human-friendly and certainly not pretty!
Would it be useful if you could customise how a date is presented. Guess what. You can!
There’s a method called strftime
that allows you to provide a date formatter and Ruby will automatically spit out the date, time or any combinaiton of it’s parts in whatever format you want.
puts time.strftime("%Y-%m-%d %H:%M:%S")
# gives: 2017-10-01 02:02:02
puts time.strftime("%A %B %d, %Y %H:%M")
# gives: Tuesday October 01, 2017 02:02
puts time.strftime("%B %Y")
# gives: October 2017
Perfect!
It’s a really flexible and powerful way to cusotmier your dates…. But how do you rememebr the syntax. Thankfully you don’t have to
Just visit http://strftime.net/. This is a great website that allows you to intuitively build your custom ‘strftime’ date responses which you can then copy and paste into your code.