##// END OF EJS Templates
dates: support 'today' and 'yesterday' in parsedate (issue3764)...
Paul Cavallaro -
r18537:ae60735e default
parent child Browse files
Show More
@@ -18,6 +18,8 b' Many date formats are valid. Here are so'
18 - ``12-6``
18 - ``12-6``
19 - ``12/6``
19 - ``12/6``
20 - ``12/6/6`` (Dec 6 2006)
20 - ``12/6/6`` (Dec 6 2006)
21 - ``today`` (midnight)
22 - ``yesterday`` (midnight)
21
23
22 Lastly, there is Mercurial's internal format:
24 Lastly, there is Mercurial's internal format:
23
25
@@ -1027,6 +1027,14 b' def parsedate(date, formats=None, bias={'
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
@@ -1035,6 +1043,13 b' def parsedate(date, formats=None, bias={'
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:
@@ -234,3 +234,20 b" Test date formats with '>' or '<' accomp"
234 Sat Apr 15 13:30:00 2006 +0000
234 Sat Apr 15 13:30:00 2006 +0000
235 Wed Feb 01 13:00:30 2006 -0500
235 Wed Feb 01 13:00:30 2006 -0500
236 Wed Feb 01 13:00:30 2006 +0000
236 Wed Feb 01 13:00:30 2006 +0000
237
238 Test issue 3764 (interpreting 'today' and 'yesterday')
239 $ echo "hello" >> a
240 >>> import datetime
241 >>> today = datetime.date.today().strftime("%b %d")
242 >>> yesterday = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%b %d")
243 >>> dates = open('dates', 'w')
244 >>> dates.write(today + '\n')
245 >>> dates.write(yesterday)
246 >>> dates.close()
247 $ hg ci -d "`sed -n '1p' dates`" -m "today is a good day to code"
248 $ hg log -d today --template '{desc}\n'
249 today is a good day to code
250 $ echo "goodbye" >> a
251 $ hg ci -d "`sed -n '2p' dates`" -m "the time traveler's code"
252 $ hg log -d yesterday --template '{desc}\n'
253 the time traveler's code
General Comments 0
You need to be logged in to leave comments. Login now