org.apache.ode.utils
Class RelativeDateParser

java.lang.Object
  extended by org.apache.ode.utils.RelativeDateParser

public class RelativeDateParser
extends java.lang.Object


Constructor Summary
RelativeDateParser()
           
 
Method Summary
static java.util.Date parseRelativeDate(java.lang.String dateTemplate)
          Returns a date which is less than current system date/time on a specified number of days, years, minutes, weeks etc.

A common template which is valid for this method is like that:
XXXXy XXXXM XXXXw XXXXd XXXXh XXXXm XXXXs, where:

 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RelativeDateParser

public RelativeDateParser()
Method Detail

parseRelativeDate

public static java.util.Date parseRelativeDate(java.lang.String dateTemplate)
                                        throws java.text.ParseException
Returns a date which is less than current system date/time on a specified number of days, years, minutes, weeks etc.

A common template which is valid for this method is like that:
XXXXy XXXXM XXXXw XXXXd XXXXh XXXXm XXXXs, where:

 XXXX - any positive number composed of four or less digits, but not less that one digit
 y - this symbol represents how many years must be subtracted from current system date
 M - this symbol represents how many months must be subtracted from current system date
 w - this symbol represents how many weeks must be subtracted rom current system date
 d - this symbol represents how many days must be subtracted from current system date
 h - this symbol represents how many hours must be subtracted from current system date
 m - this symbol represents how many minutes must be subtracted from current system date
 s - this symbol represents how many seconds must be subtracted from current system date
 
Above symbols are called "modifiers".

Modifiers are case sensitive. Modifiers separated by single space character or sequence of spaces. Each modifier is optional, but an order of modifiers is matter and must be exactly the same how its specified in template.

Here is a few examples of date templates and its meanings:
"4h 3m 23s" - means 4 hours, 3 minutes and 23 seconds ago from current system date
"1y 2m 3w" - means 1 year, 2 months and 3 weeks ago from current system date
"1m 1w 13h 5m" - means 1 month, 1 week, 13 hours and 5 minutes ago from current system date

Parameters:
dateTemplate - a template of a date we want to be calculated
Returns:
a resulted Date object that is applies specified template
Throws:
java.text.ParseException - if some problems were occurred while parsing specified date template