Package org.apache.tools.ant.util
Class DateUtils
java.lang.Object
org.apache.tools.ant.util.DateUtils
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final DateFormatDeprecated.DateFormat is not thread safe, and we cannot guarantee that some other code is using the format in parallel.static final ThreadLocal<DateFormat> Provides a thread-local US-style date format.static final ThreadLocal<DateFormat> Provides a thread-local US-style date format.static final StringISO8601-like pattern for date.static final StringISO8601-like pattern for date-time.static final StringISO8601-like pattern for time.
- 
Method SummaryModifier and TypeMethodDescriptionstatic StringFormat a date/time into a specific pattern.static StringFormat a date/time into a specific pattern.static StringformatElapsedTime(long millis) Format an elapsed time into a pluralization correct string.static StringReturns the current Date in a format suitable for a SMTP date header.static intgetPhaseOfMoon(Calendar cal) Calculate the phase of the moon for a given date.static DateparseDateFromHeader(String datestr) Parses the string in a format suitable for a SMTP date header.static DateparseIso8601Date(String datestr) Parse a string as a date using the ISO8601_DATE format which isyyyy-MM-ddstatic DateparseIso8601DateTime(String datestr) Parse a string as a datetime using the ISO8601_DATETIME format which isyyyy-MM-dd'T'HH:mm:ssstatic DateparseIso8601DateTimeOrDate(String datestr) Parse a string as a date using the either the ISO8601_DATETIME or ISO8601_DATE formats.static DateparseLenientDateTime(String dateStr) Parse a lenient ISO 8601, ms since epoch, or<touch>-style date.
- 
Field Details- 
ISO8601_DATETIME_PATTERNISO8601-like pattern for date-time. It does not support timezone.yyyy-MM-ddTHH:mm:ss- See Also:
 
- 
ISO8601_DATE_PATTERN
- 
ISO8601_TIME_PATTERN
- 
DATE_HEADER_FORMATDeprecated.DateFormat is not thread safe, and we cannot guarantee that some other code is using the format in parallel. Deprecated since ant 1.8Format used for SMTP (and probably other) Date headers.
- 
EN_US_DATE_FORMAT_MINProvides a thread-local US-style date format. Exactly as used by<touch>, to minute precision:SimpleDateFormat("MM/dd/yyyy hh:mm a", Locale.US)- Since:
- Ant 1.10.2
 
- 
EN_US_DATE_FORMAT_SECProvides a thread-local US-style date format. Exactly as used by<touch>, to second precision:SimpleDateFormat("MM/dd/yyyy hh:mm:ss a", Locale.US)- Since:
- Ant 1.10.2
 
 
- 
- 
Method Details- 
format
- 
format
- 
formatElapsedTimeFormat an elapsed time into a pluralization correct string. It is limited only to report elapsed time in minutes and seconds and has the following behavior.- minutes are not displayed when 0. (ie: "45 seconds")
- seconds are always displayed in plural form (ie "0 seconds" or "10 seconds") except for 1 (ie "1 second")
 - Parameters:
- millis- the elapsed time to report in milliseconds.
- Returns:
- the formatted text in minutes/seconds.
 
- 
getPhaseOfMoonCalculate the phase of the moon for a given date.Code heavily influenced by hacklib.c in Nethack The Algorithm: moon period = 29.53058 days ~= 30, year = 365.2422 days days moon phase advances on first day of year compared to preceding year = 365.2422 - 12 * 29.53058 ~= 11 years in Metonic cycle (time until same phases fall on the same days of the month) = 18.6 ~= 19 moon phase on first day of year (epact) ~= (11*(year%19) + 18) % 30 (18 as initial condition for 1900) current phase in days = first day phase + days elapsed in year 6 moons ~= 177 days 177 ~= 8 reported phases * 22 + 11 / 22 for rounding - Parameters:
- cal- the calendar.
- Returns:
- The phase of the moon as a number between 0 and 7 with 0 meaning new moon and 4 meaning full moon.
- Since:
- 1.2, Ant 1.5
 
- 
getDateForHeaderReturns the current Date in a format suitable for a SMTP date header.- Returns:
- the current date.
- Since:
- Ant 1.5.2
 
- 
parseDateFromHeaderParses the string in a format suitable for a SMTP date header.- Parameters:
- datestr- string to be parsed
- Returns:
- a java.util.Date object as parsed by the format.
- Throws:
- ParseException- if the supplied string cannot be parsed by this pattern.
- Since:
- Ant 1.8.0
 
- 
parseIso8601DateTimeParse a string as a datetime using the ISO8601_DATETIME format which isyyyy-MM-dd'T'HH:mm:ss- Parameters:
- datestr- string to be parsed
- Returns:
- a java.util.Date object as parsed by the format.
- Throws:
- ParseException- if the supplied string cannot be parsed by this pattern.
- Since:
- Ant 1.6
 
- 
parseIso8601DateParse a string as a date using the ISO8601_DATE format which isyyyy-MM-dd- Parameters:
- datestr- string to be parsed
- Returns:
- a java.util.Date object as parsed by the format.
- Throws:
- ParseException- if the supplied string cannot be parsed by this pattern.
- Since:
- Ant 1.6
 
- 
parseIso8601DateTimeOrDateParse a string as a date using the either the ISO8601_DATETIME or ISO8601_DATE formats.- Parameters:
- datestr- string to be parsed
- Returns:
- a java.util.Date object as parsed by the formats.
- Throws:
- ParseException- if the supplied string cannot be parsed by either of these patterns.
- Since:
- Ant 1.6
 
- 
parseLenientDateTimeParse a lenient ISO 8601, ms since epoch, or<touch>-style date. That is:- Milliseconds since 1970-01-01 00:00
- YYYY-MM-DD{T| }HH:MM[:SS[.SSS]][ ][±ZZ[[:]ZZ]]
- MM/DD/YYYY HH:MM[:SS] {AM|PM}
 - Parameters:
- dateStr- String
- Returns:
- Date
- Throws:
- ParseException- if date string does not match ISO 8601
- Since:
- Ant 1.10.2
 
 
-