[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

More elegant way to condense a date/time string?

jfry

10/22/2007 7:48:00 PM

Hey all,

I'm a relative ruby beginner, looking to create short-ish date/time
strings. I came up with:

Time.now.xmlschema.delete(':-').chop.chop.chop.chop #yields something
like 20071022T123910

Which works for me...but it seemed like I might be doing acrobatics to
solve a problem that ruby can solve more elegantly. I'm mostly just
looking for a unique alphanumeric string that's not too long. (I
chopped the timezone to make it a bit shorter.) The particular format
I ended up with works well for me, but is not a requirement - another
option I'd be happy with would be seconds (or smaller) since epoch,
for example.

I ask because I enjoy learning to make my ruby more elegant.

Thanks,
Jeff

5 Answers

Brian Adkins

10/22/2007 7:52:00 PM

0

On Oct 22, 3:47 pm, jfry <jeff....@gmail.com> wrote:
> Hey all,
>
> I'm a relative ruby beginner, looking to create short-ish date/time
> strings. I came up with:
>
> Time.now.xmlschema.delete(':-').chop.chop.chop.chop #yields something
> like 20071022T123910
>
> Which works for me...but it seemed like I might be doing acrobatics to
> solve a problem that ruby can solve more elegantly. I'm mostly just
> looking for a unique alphanumeric string that's not too long. (I
> chopped the timezone to make it a bit shorter.) The particular format
> I ended up with works well for me, but is not a requirement - another
> option I'd be happy with would be seconds (or smaller) since epoch,
> for example.

Time.now.to_i will give the number of seconds since the epoch.

Pete Elmore

10/22/2007 8:07:00 PM

0

On 22/10/2007, jfry <jeff.fry@gmail.com> wrote:
> option I'd be happy with would be seconds (or smaller) since epoch,
> for example.

You can use Time.now.to_f.

Gregory Seidman

10/22/2007 8:26:00 PM

0

On Tue, Oct 23, 2007 at 04:50:07AM +0900, jfry wrote:
> Hey all,
>
> I'm a relative ruby beginner, looking to create short-ish date/time
> strings. I came up with:
>
> Time.now.xmlschema.delete(':-').chop.chop.chop.chop #yields something
> like 20071022T123910
>
> Which works for me...but it seemed like I might be doing acrobatics to
> solve a problem that ruby can solve more elegantly. I'm mostly just
> looking for a unique alphanumeric string that's not too long. (I
> chopped the timezone to make it a bit shorter.) The particular format
> I ended up with works well for me, but is not a requirement - another
> option I'd be happy with would be seconds (or smaller) since epoch,
> for example.
>
> I ask because I enjoy learning to make my ruby more elegant.

While #to_i will get you seconds since epoch, you should also be aware of
the #strftime method, which works (nearly?) exactly like the standard C
library call.

> Thanks,
> Jeff
--Greg


jfry

10/22/2007 9:12:00 PM

0

On Oct 22, 1:25 pm, Gregory Seidman <gsslist+r...@anthropohedron.net>
wrote:
> While #to_i will get you seconds since epoch, you should also be aware of
> the #strftime method, which works (nearly?) exactly like the standard C
> library call.

Thanks all! I'm glad I asked.
Jeff

Robert Klemme

10/23/2007 7:01:00 AM

0

2007/10/22, jfry <jeff.fry@gmail.com>:
> Hey all,
>
> I'm a relative ruby beginner, looking to create short-ish date/time
> strings. I came up with:
>
> Time.now.xmlschema.delete(':-').chop.chop.chop.chop #yields something
> like 20071022T123910
>
> Which works for me...but it seemed like I might be doing acrobatics to
> solve a problem that ruby can solve more elegantly. I'm mostly just
> looking for a unique alphanumeric string that's not too long. (I
> chopped the timezone to make it a bit shorter.) The particular format
> I ended up with works well for me, but is not a requirement - another
> option I'd be happy with would be seconds (or smaller) since epoch,
> for example.
>
> I ask because I enjoy learning to make my ruby more elegant.

The proper way to achieve your format would probably be this:

irb(main):015:0> Time.now.strftime "%Y%m%dT%H%M%S"
=> "20071023T085747"

Kind regards

robert