Commit bc5c2537 authored by Jannis Leidel's avatar Jannis Leidel
Browse files

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
parent 47b1a8e7
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -27,13 +27,15 @@ import datetime
import urlparse
from django.utils.xmlutils import SimplerXMLGenerator
from django.utils.encoding import force_unicode, iri_to_uri
from django.utils import datetime_safe

def rfc2822_date(date):
    # We can't use strftime() because it produces locale-dependant results, so
    # we have to map english month and day names manually
    months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',)
    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.
    dow = days[date.weekday()]
    month = months[date.month - 1]
@@ -47,6 +49,8 @@ def rfc2822_date(date):
        return time_str + '-0000'

def rfc3339_date(date):
    # Support datetime objects older than 1900
    date = datetime_safe.new_datetime(date)
    if date.tzinfo:
        time_str = date.strftime('%Y-%m-%dT%H:%M:%S')
        offset = date.tzinfo.utcoffset(date)
@@ -71,7 +75,7 @@ def get_tag_uri(url, date):

    d = ''
    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)

class SyndicationFeed(object):
+1 −1
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
    "pk": 1,
    "fields": {
      "title": "My first entry",
      "date": "2008-01-01 12:30:00"
      "date": "1850-01-01 12:30:00"
    }
  },
  {