Assert.assertEquals(cal.getTime(), parse);
}
+ @Test
+ public void never() throws ParseException {
+ GregorianCalendar cal = new GregorianCalendar(SystemReader
+ .getInstance().getTimeZone(), SystemReader.getInstance()
+ .getLocale());
+ Date parse = GitDateParser.parse("never", cal);
+ Assert.assertEquals(GitDateParser.NEVER, parse);
+ parse = GitDateParser.parse("never", null);
+ Assert.assertEquals(GitDateParser.NEVER, parse);
+ }
+
@Test
public void now() throws ParseException {
String dateStr = "2007-02-21 15:35:00 +0100";
* understands.
*/
public class GitDateParser {
+ /**
+ * The Date representing never. Though this is a concrete value, most
+ * callers are adviced to avoid depending on the actual value.
+ */
+ public static final Date NEVER = new Date(Long.MAX_VALUE);
+
// Since SimpleDateFormat instances are expensive to instantiate they should
// be cached. Since they are also not threadsafe they are cached using
// ThreadLocal.
* relative formats (e.g. "yesterday") the caller can specify the reference
* date. These types of strings can be parsed:
* <ul>
+ * <li>"never"</li>
* <li>"now"</li>
* <li>"yesterday"</li>
* <li>"(x) years|months|weeks|days|hours|minutes|seconds ago"<br>
throws ParseException {
dateStr = dateStr.trim();
Date ret;
+
+ if ("never".equalsIgnoreCase(dateStr))
+ return NEVER;
ret = parse_relative(dateStr, now);
if (ret != null)
return ret;