More elegant way to condense a date/time string?

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

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

···

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.

You can use Time.now.to_f.

···

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.

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

···

On Tue, Oct 23, 2007 at 04:50:07AM +0900, jfry wrote:

Look up the ISO-8601 date/time formats, e.g. 1999-01-08 04:05:06

They're standard, unambiguous, and have the handy property that
alphabetical sorting is equivalent to date-order sorting.

- donald

···

-----Original Message-----
From: jfry [mailto:jeff.fry@gmail.com]
Sent: Monday, October 22, 2007 2:50 PM
To: ruby-talk ML
Subject: More elegant way to condense a date/time string?

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.

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

···

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.

Thanks all! I'm glad I asked.
Jeff

···

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.