diff -r 7c48bb929e6e Lib/datetime.py --- a/Lib/datetime.py Tue Mar 27 11:49:21 2012 +0200 +++ b/Lib/datetime.py Tue Mar 27 13:29:09 2012 -0500 @@ -896,6 +896,16 @@ week = 0 return year, week+1, day+1 + @classmethod + def from_iso_week(cls, year, week, day=1): + """Construct a date from ISO year, week number and weekday (default 1) + """ + date = cls(year, 1, 1) + if date.isocalendar()[1] != 1: + if date.weekday() > 3: # Jan 1 is not in week one + date += timedelta(7 - date.weekday()) + return date + timedelta(7 * (week - 1)) + timedelta(day - 1) + # Pickle support. def _getstate(self):