Fixed #14132 -- Fixed feedgenerator to support years < 1900. Thanks, mk.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15503 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
47b1a8e704
commit
bc5c2537ae
|
@ -27,13 +27,15 @@ import datetime
|
||||||
import urlparse
|
import urlparse
|
||||||
from django.utils.xmlutils import SimplerXMLGenerator
|
from django.utils.xmlutils import SimplerXMLGenerator
|
||||||
from django.utils.encoding import force_unicode, iri_to_uri
|
from django.utils.encoding import force_unicode, iri_to_uri
|
||||||
|
from django.utils import datetime_safe
|
||||||
|
|
||||||
def rfc2822_date(date):
|
def rfc2822_date(date):
|
||||||
# We can't use strftime() because it produces locale-dependant results, so
|
# We can't use strftime() because it produces locale-dependant results, so
|
||||||
# we have to map english month and day names manually
|
# we have to map english month and day names manually
|
||||||
months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',)
|
months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',)
|
||||||
days = ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun')
|
days = ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun')
|
||||||
|
# Support datetime objects older than 1900
|
||||||
|
date = datetime_safe.new_datetime(date)
|
||||||
# We do this ourselves to be timezone aware, email.Utils is not tz aware.
|
# We do this ourselves to be timezone aware, email.Utils is not tz aware.
|
||||||
dow = days[date.weekday()]
|
dow = days[date.weekday()]
|
||||||
month = months[date.month - 1]
|
month = months[date.month - 1]
|
||||||
|
@ -47,6 +49,8 @@ def rfc2822_date(date):
|
||||||
return time_str + '-0000'
|
return time_str + '-0000'
|
||||||
|
|
||||||
def rfc3339_date(date):
|
def rfc3339_date(date):
|
||||||
|
# Support datetime objects older than 1900
|
||||||
|
date = datetime_safe.new_datetime(date)
|
||||||
if date.tzinfo:
|
if date.tzinfo:
|
||||||
time_str = date.strftime('%Y-%m-%dT%H:%M:%S')
|
time_str = date.strftime('%Y-%m-%dT%H:%M:%S')
|
||||||
offset = date.tzinfo.utcoffset(date)
|
offset = date.tzinfo.utcoffset(date)
|
||||||
|
@ -71,7 +75,7 @@ def get_tag_uri(url, date):
|
||||||
|
|
||||||
d = ''
|
d = ''
|
||||||
if date is not None:
|
if date is not None:
|
||||||
d = ',%s' % date.strftime('%Y-%m-%d')
|
d = ',%s' % datetime_safe.new_datetime(date).strftime('%Y-%m-%d')
|
||||||
return u'tag:%s%s:%s/%s' % (hostname, d, path, fragment)
|
return u'tag:%s%s:%s/%s' % (hostname, d, path, fragment)
|
||||||
|
|
||||||
class SyndicationFeed(object):
|
class SyndicationFeed(object):
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"pk": 1,
|
"pk": 1,
|
||||||
"fields": {
|
"fields": {
|
||||||
"title": "My first entry",
|
"title": "My first entry",
|
||||||
"date": "2008-01-01 12:30:00"
|
"date": "1850-01-01 12:30:00"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue