Parse strings into Time objects for date-related parsing. Fixes #997.

This commit is contained in:
Parker Moore 2013-05-04 14:01:44 +02:00
parent 1c4f5b4ee5
commit 7554c4ce61
1 changed files with 17 additions and 4 deletions

View File

@ -30,7 +30,7 @@ module Jekyll
# #
# Returns the formatting String. # Returns the formatting String.
def date_to_string(date) def date_to_string(date)
date.strftime("%d %b %Y") time(date).strftime("%d %b %Y")
end end
# Format a date in long format e.g. "27 January 2011". # Format a date in long format e.g. "27 January 2011".
@ -39,7 +39,7 @@ module Jekyll
# #
# Returns the formatted String. # Returns the formatted String.
def date_to_long_string(date) def date_to_long_string(date)
date.strftime("%d %B %Y") time(date).strftime("%d %B %Y")
end end
# Format a date for use in XML. # Format a date for use in XML.
@ -53,7 +53,7 @@ module Jekyll
# #
# Returns the formatted String. # Returns the formatted String.
def date_to_xmlschema(date) def date_to_xmlschema(date)
date.xmlschema time(date).xmlschema
end end
# Format a date according to RFC-822 # Format a date according to RFC-822
@ -67,7 +67,7 @@ module Jekyll
# #
# Returns the formatted String. # Returns the formatted String.
def date_to_rfc822(date) def date_to_rfc822(date)
date.rfc822 time(date).rfc822
end end
# XML escape a string for use. Replaces any special characters with # XML escape a string for use. Replaces any special characters with
@ -137,5 +137,18 @@ module Jekyll
"#{array[0...-1].join(', ')}, #{connector} #{array[-1]}" "#{array[0...-1].join(', ')}, #{connector} #{array[-1]}"
end end
end end
private
def time(input)
case input
when Time
input
when String
Time.parse(input)
else
Jekyll::Logger.error "Invalid Date:", "'#{input}' is not a valid datetime."
exit(1)
end
end
end end
end end