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

On Oct 22, 3:47 pm, jfry [email protected] wrote:

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.

On 22/10/2007, jfry [email protected] wrote:

option I’d be happy with would be seconds (or smaller) since epoch,
for example.

You can use Time.now.to_f.

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

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

for example.
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

On Oct 22, 1:25 pm, Gregory S. [email protected]
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

2007/10/22, jfry [email protected]:

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