Package org.eclipse.jgit.util
Class GitDateParser
java.lang.Object
org.eclipse.jgit.util.GitDateParser
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.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static enum
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static ThreadLocal<Map<Locale,
Map<GitDateParser.ParseableSimpleDateFormat, SimpleDateFormat>>> static final Date
The Date representing never. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static SimpleDateFormat
private static SimpleDateFormat
getNewSimpleDateFormat
(GitDateParser.ParseableSimpleDateFormat f, Locale locale, Map<GitDateParser.ParseableSimpleDateFormat, SimpleDateFormat> map) static Date
Parses a string into aDate
using the default locale.static Date
Parses a string into aDate
using the given locale.private static Date
parse_relative
(String dateStr, Calendar now) private static Date
parse_simple
(String dateStr, GitDateParser.ParseableSimpleDateFormat f, Locale locale)
-
Field Details
-
NEVER
The Date representing never. Though this is a concrete value, most callers are adviced to avoid depending on the actual value. -
formatCache
private static ThreadLocal<Map<Locale,Map<GitDateParser.ParseableSimpleDateFormat, formatCacheSimpleDateFormat>>>
-
-
Constructor Details
-
GitDateParser
public GitDateParser()
-
-
Method Details
-
getDateFormat
private static SimpleDateFormat getDateFormat(GitDateParser.ParseableSimpleDateFormat f, Locale locale) -
getNewSimpleDateFormat
private static SimpleDateFormat getNewSimpleDateFormat(GitDateParser.ParseableSimpleDateFormat f, Locale locale, Map<GitDateParser.ParseableSimpleDateFormat, SimpleDateFormat> map) -
parse
Parses a string into aDate
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 parsednow
- 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 tonull
then the current time will be used instead.- Returns:
- the parsed
Date
- Throws:
ParseException
- if the given dateStr was not recognized
-
parse
Parses a string into aDate
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 parsednow
- 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 tonull
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
-