Class GitDateParser

java.lang.Object
org.eclipse.jgit.util.GitDateParser

public class GitDateParser extends Object
Parses strings with time and date specifications into Date. When git needs to parse strings specified by the user this parser can be used. One example is the parsing of the config parameter gc.pruneexpire. The parser can handle only subset of what native gits approxidate parser understands.
  • Field Details

  • Constructor Details

    • GitDateParser

      public GitDateParser()
  • Method Details

    • getDateFormat

      private static SimpleDateFormat getDateFormat(GitDateParser.ParseableSimpleDateFormat f, Locale locale)
    • getNewSimpleDateFormat

    • parse

      public static Date parse(String dateStr, Calendar now) throws ParseException
      Parses a string into a Date using the default locale. Since this parser also supports relative formats (e.g. "yesterday") the caller can specify the reference date. These types of strings can be parsed:
      • "never"
      • "now"
      • "yesterday"
      • "(x) years|months|weeks|days|hours|minutes|seconds ago"
        Multiple specs can be combined like in "2 weeks 3 days ago". Instead of ' ' one can use '.' to separate the words
      • "yyyy-MM-dd HH:mm:ss Z" (ISO)
      • "EEE, dd MMM yyyy HH:mm:ss Z" (RFC)
      • "yyyy-MM-dd"
      • "yyyy.MM.dd"
      • "MM/dd/yyyy",
      • "dd.MM.yyyy"
      • "EEE MMM dd HH:mm:ss yyyy Z" (DEFAULT)
      • "EEE MMM dd HH:mm:ss yyyy" (LOCAL)
      Parameters:
      dateStr - the string to be parsed
      now - the base date which is used for the calculation of relative formats. E.g. if baseDate is "25.8.2012" then parsing of the string "1 week ago" would result in a date corresponding to "18.8.2012". This is used when a JGit command calls this parser often but wants a consistent starting point for calls.
      If set to null then the current time will be used instead.
      Returns:
      the parsed Date
      Throws:
      ParseException - if the given dateStr was not recognized
    • parse

      public static Date parse(String dateStr, Calendar now, Locale locale) throws ParseException
      Parses a string into a Date using the given locale. Since this parser also supports relative formats (e.g. "yesterday") the caller can specify the reference date. These types of strings can be parsed:
      • "never"
      • "now"
      • "yesterday"
      • "(x) years|months|weeks|days|hours|minutes|seconds ago"
        Multiple specs can be combined like in "2 weeks 3 days ago". Instead of ' ' one can use '.' to separate the words
      • "yyyy-MM-dd HH:mm:ss Z" (ISO)
      • "EEE, dd MMM yyyy HH:mm:ss Z" (RFC)
      • "yyyy-MM-dd"
      • "yyyy.MM.dd"
      • "MM/dd/yyyy",
      • "dd.MM.yyyy"
      • "EEE MMM dd HH:mm:ss yyyy Z" (DEFAULT)
      • "EEE MMM dd HH:mm:ss yyyy" (LOCAL)
      Parameters:
      dateStr - the string to be parsed
      now - the base date which is used for the calculation of relative formats. E.g. if baseDate is "25.8.2012" then parsing of the string "1 week ago" would result in a date corresponding to "18.8.2012". This is used when a JGit command calls this parser often but wants a consistent starting point for calls.
      If set to null then the current time will be used instead.
      locale - locale to be used to parse the date string
      Returns:
      the parsed Date
      Throws:
      ParseException - if the given dateStr was not recognized
      Since:
      3.2
    • parse_simple

      private static Date parse_simple(String dateStr, GitDateParser.ParseableSimpleDateFormat f, Locale locale) throws ParseException
      Throws:
      ParseException
    • parse_relative

      private static Date parse_relative(String dateStr, Calendar now)