Format natural date

J

John Butler

Is there a way to format a natural date like May 7, 2008 to 07/05/2008.
Ive tried
Date.strptime("May 7, 2008", '%d/%m/%Y') without success?

Is it possible to this in a one line with ruby?

JB
 
R

Robert Klemme

Is there a way to format a natural date like May 7, 2008 to 07/05/2008.
Ive tried
Date.strptime("May 7, 2008", '%d/%m/%Y') without success?

You seem to want to _reformat_ a date string. But the code you show
just _parses_ a string into a Date. If you want to reformat your string
you first need to parse it and then format it.
Is it possible to this in a one line with ruby?

Yes. You're almost there but you need to format your format string so
it matches the date strings that you are trying to parse. Since there
is nowhere a slash in your date string it comes as no surprise that the
format does not match. :)

Kind regards

robert
 
T

Todd Benson

Is there a way to format a natural date like May 7, 2008 to 07/05/2008.
Ive tried
Date.strptime("May 7, 2008", '%d/%m/%Y') without success?

Is it possible to this in a one line with ruby?

JB

Yes, but I don't know why you would want to.

#strptime builds a Date object from your string with your format.
Then, you must format it.

If you don't need the Date object, I would just perform the magic on
the string itself. Matching month abbreviations to month numbers can
be done with Date::ABBR_MONTHNAMES.

hth,

Todd
 
J

John Butler

Todd said:
Yes, but I don't know why you would want to.

#strptime builds a Date object from your string with your format.
Then, you must format it.

If you don't need the Date object, I would just perform the magic on
the string itself. Matching month abbreviations to month numbers can
be done with Date::ABBR_MONTHNAMES.

hth,

Todd

Ok i see, i didnt explain myself properly, i wanted to turn "May 23,
2008" into a date and then output it as 23/05/2008"

Below works fine.

Date.strptime("May 23, 2008", '%B %d, %Y').strftime("%d/%m/%Y")
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,204
Messages
2,571,065
Members
47,672
Latest member
svaraho

Latest Threads

Top