Hi,
What’s the “ruby way” to go from a date/time format that is “Year
Day_of_Year time” to “Year Month Day”. E.g. I want to convert
year=2008, day_of_year=095, frequently represented as “2008-095” to it’s
more usual format “2008-04-04”. I’ve been playing with the Time class
and it’s methods and found nifty ways to get yday, e.g.
Time.now.utc.yday, but how do I easily go backwards w/o writing my own
simple converter?
R
On Apr 4, 2008, at 9:38 AM, Rob R. wrote:
What’s the “ruby way” to go from a date/time format that is “Year
Day_of_Year time” to “Year Month Day”. E.g. I want to convert
year=2008, day_of_year=095, frequently represented as “2008-095” to
it’s
more usual format “2008-04-04”. I’ve been playing with the Time class
and it’s methods and found nifty ways to get yday, e.g.
Time.now.utc.yday, but how do I easily go backwards w/o writing my own
simple converter?
How’s this?
require “date”
=> true
Date.strptime(“2008-095”, “%Y-%j”).to_s
=> “2008-04-04”
James Edward G. II
On Apr 4, 2008, at 8:38 AM, Rob R. wrote:
Hi,
What’s the “ruby way” to go from a date/time format that is “Year
Day_of_Year time” to “Year Month Day”. E.g. I want to convert
year=2008, day_of_year=095, frequently represented as “2008-095” to
it’s
more usual format “2008-04-04”. I’ve been playing with the Time class
and it’s methods and found nifty ways to get yday, e.g.
Time.now.utc.yday, but how do I easily go backwards w/o writing my own
simple converter?
R
hi rob-
james example is good - you might find this method quite useful with
julian days to:
p Date.ordinal(2008,1).ctime #=> “Tue Jan 1 00:00:00 2008”
cheers
a @ http://codeforpeople.com/
ara.t.howard wrote:
On Apr 4, 2008, at 8:38 AM, Rob R. wrote:
Hi,
What’s the “ruby way” to go from a date/time format that is “Year
Day_of_Year time” to “Year Month Day”. E.g. I want to convert
year=2008, day_of_year=095, frequently represented as “2008-095” to
it’s
more usual format “2008-04-04”. I’ve been playing with the Time class
and it’s methods and found nifty ways to get yday, e.g.
Time.now.utc.yday, but how do I easily go backwards w/o writing my own
simple converter?
R
hi rob-
james example is good - you might find this method quite useful with
julian days to:
p Date.ordinal(2008,1).ctime #=> “Tue Jan 1 00:00:00 2008”
cheers
a @ http://codeforpeople.com/
Wicked, thanks Ara!
Caution to the wind; I’m building my own 1.8.6 to experiment with.
Rob
On Apr 4, 2008, at 9:20 AM, Rob R. wrote:
Maybe my version of Ruby (1.8.1) is too old. The computer in question
is managed by the network pirates and unlikely to be upgraded. This
is
a noob thought, but is there a way for me to locally upgrade the Date
class, ala a Ruby Gem?
yyyy, jjj, *ignored = yourdate.split ‘-’
date = Date.ordinal Integer(yyyy), Integer(jjj)
p date
a @ http://codeforpeople.com/
On Apr 4, 2008, at 9:24 AM, Rob R. wrote:
Caution to the wind; I’m building my own 1.8.6 to experiment with.
put it on NFS - then just use it everywhere - bugger sysadmins
a @ http://codeforpeople.com/
James G. wrote:
On Apr 4, 2008, at 9:38 AM, Rob R. wrote:
What’s the “ruby way” to go from a date/time format that is “Year
Day_of_Year time” to “Year Month Day”. E.g. I want to convert
year=2008, day_of_year=095, frequently represented as “2008-095” to
it’s
more usual format “2008-04-04”. I’ve been playing with the Time class
and it’s methods and found nifty ways to get yday, e.g.
Time.now.utc.yday, but how do I easily go backwards w/o writing my own
simple converter?
How’s this?
require “date”
=> true
Date.strptime(“2008-095”, “%Y-%j”).to_s
=> “2008-04-04”
James Edward G. II
Good idea, but doesn’t work for me:
irb(main):065:0> Date.strptime(“2008-095”, “%Y-%J”).to_s
ArgumentError: invalid date
from /usr/lib/ruby/1.8/date.rb:650:in new_with_hash' from /usr/lib/ruby/1.8/date.rb:675:in
strptime’
from (irb):65
from :0
Maybe my version of Ruby (1.8.1) is too old. The computer in question
is managed by the network pirates and unlikely to be upgraded. This is
a noob thought, but is there a way for me to locally upgrade the Date
class, ala a Ruby Gem?
R
James G. wrote:
How’s this?
require “date”
=> true
Date.strptime(“2008-095”, “%Y-%j”).to_s
=> “2008-04-04”
James Edward G. II
Now that is an awesome little method I didn’t know about. Thanks James.