1025 def parsedate(date, formats=None, bias={}): |
1025 def parsedate(date, formats=None, bias={}): |
1026 """parse a localized date/time and return a (unixtime, offset) tuple. |
1026 """parse a localized date/time and return a (unixtime, offset) tuple. |
1027 |
1027 |
1028 The date may be a "unixtime offset" string or in one of the specified |
1028 The date may be a "unixtime offset" string or in one of the specified |
1029 formats. If the date already is a (unixtime, offset) tuple, it is returned. |
1029 formats. If the date already is a (unixtime, offset) tuple, it is returned. |
|
1030 |
|
1031 >>> parsedate(' today ') == parsedate(\ |
|
1032 datetime.date.today().strftime('%b %d')) |
|
1033 True |
|
1034 >>> parsedate( 'yesterday ') == parsedate((datetime.date.today() -\ |
|
1035 datetime.timedelta(days=1)\ |
|
1036 ).strftime('%b %d')) |
|
1037 True |
1030 """ |
1038 """ |
1031 if not date: |
1039 if not date: |
1032 return 0, 0 |
1040 return 0, 0 |
1033 if isinstance(date, tuple) and len(date) == 2: |
1041 if isinstance(date, tuple) and len(date) == 2: |
1034 return date |
1042 return date |
1035 if not formats: |
1043 if not formats: |
1036 formats = defaultdateformats |
1044 formats = defaultdateformats |
1037 date = date.strip() |
1045 date = date.strip() |
|
1046 |
|
1047 if date == _('today'): |
|
1048 date = datetime.date.today().strftime('%b %d') |
|
1049 elif date == _('yesterday'): |
|
1050 date = (datetime.date.today() - |
|
1051 datetime.timedelta(days=1)).strftime('%b %d') |
|
1052 |
1038 try: |
1053 try: |
1039 when, offset = map(int, date.split(' ')) |
1054 when, offset = map(int, date.split(' ')) |
1040 except ValueError: |
1055 except ValueError: |
1041 # fill out defaults |
1056 # fill out defaults |
1042 now = makedate() |
1057 now = makedate() |