org.apache.tools.ant.util
Class DateUtils
java.lang.Object
org.apache.tools.ant.util.DateUtils
public final class DateUtils
extends java.lang.Object
Helper methods to deal with date/time formatting with a specific
defined format (
ISO8601)
or a plurialization correct elapsed time in minutes and seconds.
Version:
- Ant 1.5
static String | format(Date date, String pattern) - Format a date/time into a specific pattern.
|
static String | format(long date, String pattern) - Format a date/time into a specific pattern.
|
static String | formatElapsedTime(long millis) - Format an elapsed time into a plurialization correct string.
|
static String | getDateForHeader() - Returns the current Date in a format suitable for a SMTP date
header.
|
static int | getPhaseOfMoon(Calendar cal) - Calculate the phase of the moon for a given date.
|
static Date | parseIso8601Date(String datestr) - Parse a string as a date using the ISO8601_DATE format which is
yyyy-MM-dd
|
static Date | parseIso8601DateTime(String datestr) - Parse a string as a datetime using the ISO8601_DATETIME format which is
yyyy-MM-dd'T'HH:mm:ss
|
static Date | parseIso8601DateTimeOrDate(String datestr) - Parse a string as a date using the either the ISO8601_DATETIME
or ISO8601_DATE formats.
|
DATE_HEADER_FORMAT
public static final DateFormat DATE_HEADER_FORMAT
Format used for SMTP (and probably other) Date headers.
ISO8601_DATETIME_PATTERN
public static final String ISO8601_DATETIME_PATTERN
ISO8601-like pattern for date-time. It does not support timezone.
yyyy-MM-ddTHH:mm:ss
ISO8601_DATE_PATTERN
public static final String ISO8601_DATE_PATTERN
ISO8601-like pattern for date. yyyy-MM-dd
ISO8601_TIME_PATTERN
public static final String ISO8601_TIME_PATTERN
ISO8601-like pattern for time. HH:mm:ss
format
public static String format(Date date,
String pattern)
Format a date/time into a specific pattern.
date
- the date to format expressed in milliseconds.pattern
- the pattern to use to format the date.
- the formatted date.
format
public static String format(long date,
String pattern)
Format a date/time into a specific pattern.
date
- the date to format expressed in milliseconds.pattern
- the pattern to use to format the date.
- the formatted date.
formatElapsedTime
public static String formatElapsedTime(long millis)
Format an elapsed time into a plurialization 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")
millis
- the elapsed time to report in milliseconds.
- the formatted text in minutes/seconds.
getDateForHeader
public static String getDateForHeader()
Returns the current Date in a format suitable for a SMTP date
header.
- Ant 1.5.2
getPhaseOfMoon
public static int getPhaseOfMoon(Calendar cal)
Calculate 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
- The phase of the moon as a number between 0 and 7 with
0 meaning new moon and 4 meaning full moon.
- 1.2, Ant 1.5
parseIso8601Date
public static Date parseIso8601Date(String datestr)
throws ParseException
Parse a string as a date using the ISO8601_DATE format which is
yyyy-MM-dd
datestr
- string to be parsed
- a java.util.Date object as parsed by the format.
- Ant 1.6
parseIso8601DateTime
public static Date parseIso8601DateTime(String datestr)
throws ParseException
Parse a string as a datetime using the ISO8601_DATETIME format which is
yyyy-MM-dd'T'HH:mm:ss
datestr
- string to be parsed
- a java.util.Date object as parsed by the format.
- Ant 1.6
parseIso8601DateTimeOrDate
public static Date parseIso8601DateTimeOrDate(String datestr)
throws ParseException
Parse a string as a date using the either the ISO8601_DATETIME
or ISO8601_DATE formats.
datestr
- string to be parsed
- a java.util.Date object as parsed by the formats.
- Ant 1.6
Copyright B) 2000-2005 Apache Software Foundation. All Rights Reserved.