HELP! How to validate DATE?
Hello...
how to validate a DATE variable?
I have used SimpleDateFormat (dd/MM/yyyy).
For some input it worked fine, but for:
12/67/200394 (OK!) <- this is false, right? but not trapped!
1234546 (TRAPPED!)
12/324/1234 (OK!) <- this is false, right? but not trapped!
I need to have a 100% working Date validator.
Plz Help.
Thank you.
Hey -
I used to following code on your dates to get the results you were looking for...
import java.text.SimpleDateFormat;
import java.text.ParsePosition;
import java.util.Date;
public class DateFormatTest {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
ParsePosition pos = new ParsePosition(0);
String strDate = " 12/67/200394";
Date date = df.parse(strDate, pos);
// Check all possible things that signal a parsing error
if ((date == null) || (pos.getErrorIndex() != -1)) {
System.out.println("Error: " + pos.getIndex());
if (date == null) {
System.out.println("Date is null");
if (pos.getErrorIndex() != -1) {
System.out.println("Error index: " + pos.getErrorIndex());
}I hope there's something helpful in there
Lee
Similar Messages
-
Hi,
We have a date field in the form. I am validating date format as YYYY-MM-DD, validation works fine. But If user enters invalid date, how to validate date? For examples:
2006-02-31 It is an invalid date. How can i validate it.
If anybody have sample code, it will help me a lot.
thanks
Neopal.Hi Neopal,
You can use something like the following to test the date is valid, use the validation event on the <Field> which you want to validate to call a Rule something like this (not complete)..
<Rule name='isDateValid'>
<RuleArgument name='date'/>
<block>
<script>
var dateToTest = env.get('date');
var formatter = new java.text.SimpleDateFormat('YYYY-MM-DD');
Date validDate = formatter.parse(dateToTest); -
How to validate date formate YYYY-MM-DDThh:mm:ss ?
i have implemented validation for YYYY-MM-DD <br>
but how to validate for time <br>
here is the code for date validation
could you please anyone help me on this issue
<br><br><br> public static boolean validateDateFormate(String date) <br><br>
{ <br>
<br> try { <br>
<br> String dateFormat="yyyy-MM-ddYYYY-MM-DDThh:mm:ss";
<br> String temp = date.substring(0,date.indexOf("-"));
<br> if(temp.length()!= 4)
<br> return false;
<br> SimpleDateFormat df=new SimpleDateFormat(dateFormat);
<br> Date date1=df.parse(date);
<br>String resultDateString=df.format(date1);
<br>System.out.println("date1"+resultDateString);
<br> if ( !date.equals(resultDateString)) { return false; }
<br> } catch (Exception de) {
<br> System.out.println(de);
<br> return false;
<br>
<br>}
<br> return true;
<br> }A useful Data util class
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;
public final class SlacDate implements Comparable
public final static int FormatDDMMCCYY = 0;
public final static int FormatMMDDCCYY = 1;
public final static int FormatDATETIME = 2;
public final static int FormatMMMDDTIME = 3;
public final static int FormatTIMESTAMP = 4;
public final static int FormatCCYYMMDD = 5;
public final static int FormatCCYYMMDDHHMM = 6;
public final static int FormatCCYYMMDDHHMMSS = 7;
public final static int FormatDDMMCCYYTIME = 8;
public final static int FormatDATEVERBOSE = 9;
public final static int FormatDATETIMEVERBOSE = 10;
public final static int FormatHHMMSS = 11;
public final static int FormatHHMMSSMIL = 12;
public final static int FormatDB2TIMESTAMP = 13;
public final static int FormatUDBTIMESTAMP = 14;
public final static int JANUARY = 1;
public final static int FEBRUARY = 2;
public final static int MARCH = 3;
public final static int APRIL = 4;
public final static int MAY = 5;
public final static int JUNE = 6;
public final static int JULY = 7;
public final static int AUGUST = 8;
public final static int SEPTEMBER = 9;
public final static int OCTOBER = 10;
public final static int NOVEMBER = 11;
public final static int DECEMBER = 12;
public final static int MONTHS_IN_YEAR = 12;
public final static int SUNDAY = 1;
public final static int MONDAY = 2;
public final static int TUESDAY = 3;
public final static int WEDNESDAY = 4;
public final static int THURSDAY = 5;
public final static int FRIDAY = 6;
public final static int SATURDAY = 7;
public final static int DAYS_IN_WEEK = 7;
private final static int DefaultHours = 12;
private final static int DefaultMinutes = 0;
private final static int DefaultSeconds = 0;
private final static int DefaultMillis = 0;
private final static int DaysInMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
private final static String MonthAbbrev[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
private final static String MonthVerbose[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
private final static String DaysOfWeekAbbrev[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
private final static String DaysOfWeek[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
private final static String DayExtension[] = { "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
private final static String EMPTY = "";
private final static String COLON = ":";
private final static String PERIOD = ".";
private final static String HYPHEN = "-";
private final static String SPACE = " ";
private final static String ZERO = "0";
private static String s_dateSep = HYPHEN;
private int m_dd, m_mm, m_yyyy, m_hh, m_min, m_ss, m_mil;
private static long MillisInSecond = 1000;
private static long MillisInMinute = MillisInSecond * 60;
private static long MillisInHour = MillisInMinute * 60;
private static long MillisInDay = MillisInHour * 24;
* JDK_BST_FIX
* Static initialisation block - check JDK vendor/version in order to determine whether
* an adjustment to correctly report British summertime needs to be made. This is required
* in order to fix a bug in some Sun & IBM JDKs. If an untested version of the Sun or IBM JDK
* is used, we log an error message warning that this block of code should be examained and
* changed as appropriate. This is ugly, but will prevent a new JDK being used and this bug
* creeping back in.
* Note the following JDKs have been tested under both NT & AIX
* JDK Version NT AIX
* 1.1.7 (IBM) x x
* 1.1.7A (IBM) ?
* 1.1.7B (IBM) ? ?
* 1.1.8 (IBM) x x
* 1.2.2 (IBM) ok ok
* 1.1.7 (SUN) x x
* 1.1.8 (SUN) x x
* 1.2 (SUN) x x
private final static String SunVendorString = "Sun Microsystems Inc.";
private final static String IBMVendorString = "IBM"; // Can also be 'IBM Corporation'
private final static String SunProblemJDKs[] = { "1.1.4", "1.1.5", "1.1.6", "1.1.7", "1.1.7A", "1.1.7B", "1.1.8", "1.2", "1.2.2" };
private final static String SunOKJDKs[] = { "1.0.2", "1.1.2", "1.1.3", "1.4.0", "1.4.2"};
private final static String IBMProblemJDKs[] = { "1.1.4", "1.1.5", "1.1.6", "1.1.7", "1.1.7A", "1.1.8" };
private final static String IBMOKJDKs[] = { "1.0.2", "1.1.2", "1.1.3", "1.1.7B", "1.2.2", "1.3.0", "1.3.1" };
private static boolean s_adjustForBST = false;
static
String vendor = System.getProperty("java.vendor");
String jdk = System.getProperty("java.version");
// Check applies to Sun only.
if (vendor.equals(SunVendorString) || vendor.startsWith(IBMVendorString))
String problemJDKs[] = null;
String OKJDKs[] = null;
if (vendor.equals(SunVendorString))
problemJDKs = SunProblemJDKs;
OKJDKs = SunOKJDKs;
else
problemJDKs = IBMProblemJDKs;
OKJDKs = IBMOKJDKs;
// Determine whether we need to make adjustment
for (int i = 0; i < problemJDKs.length; i++)
if (problemJDKs.equals(jdk))
s_adjustForBST = true;
break;
// If we do not need to make the adjustment then check that the
// JDK reported is one of the versions that we know to be good.
// If it is not log an error message.
if (!s_adjustForBST)
boolean goodJDK = false;
for (int i = 0; i < OKJDKs.length; i++)
if (OKJDKs[i].equals(jdk))
goodJDK = true;
break;
/* CR176 - we now anticipate that all JDKs post 1.3.x are "good" ones
if (!goodJDK)
// We do not use the SingletonLogger mechanism since we
// cannot be sure that these singleton objects have been instantiated
// at this point, and in any case it is not desirable to introduce
// this dependancy into SlacDate.
System.err.println("JDK VERSION ERROR : Unsupported JDK - '" + jdk + "' provided by '" + vendor + "'. SlacDate class requires examination.");
* Construct the date with todays date.
* <p>This should be the only place where a Date object is explicitly instantiated. All
* other code should use SlacDate. If the s_adjustForBST flag is set and the date falls
* between the last sunday of March and the last Sunday of October (inclusive) then we need
* to make an adjustment of +1 hour so that British Summertime is correctly reported.
private SlacDate()
init(Calendar.getInstance());
* Construct the date with the specified day, month and year.
* @param year The year to set the date to
* @param month The month to set the date to
* @param date The date to set the date to
* @exception InvalidDateException Invalid date parameters passed in.
public SlacDate(int year, int month, int date) throws InvalidDateException
init(year, month, date, DefaultHours, DefaultMinutes, DefaultSeconds, DefaultMillis);
* Construct the date with the specified day, month, year, hour and minute.
* @param year The year to set the date to
* @param month The month to set the date to
* @param date The date to set the date to
* @param hr The hour to set the date to
* @param min The minute to set the date to
* @exception InvalidDateException Invalid date parameters passed in.
public SlacDate(int year, int month, int date, int hr, int min) throws InvalidDateException
init(year, month, date, hr, min, DefaultSeconds, DefaultMillis);
* Construct the date with the specified day, month, year, hour, minute and second.
* Will default to 0 milliseconds.
* @param year The year to set the date to
* @param month The month to set the date to
* @param date The date to set the date to
* @param hr The hour to set the date to
* @param min The minute to set the date to
* @param sec The second to set the date to
* @exception InvalidDateException Invalid date parameters passed in.
public SlacDate(int year, int month, int date, int hr, int min, int sec) throws InvalidDateException
init(year, month, date, hr, min, sec, DefaultMillis);
* Construct the date with the specified day, month, year, hour, minute, second and milliseconds.
* @param year The year to set the date to
* @param month The month to set the date to
* @param date The date to set the date to
* @param hr The hour to set the date to
* @param min The minute to set the date to
* @param sec The second to set the date to
* @param millis The milliseconds to set the date to
* @exception InvalidDateException Invalid date parameters passed in.
public SlacDate(int year, int month, int date, int hr, int min, int sec, int millis) throws InvalidDateException
init(year, month, date, hr, min, sec, millis);
* Construct the date from a timestamp.
public SlacDate(long timestamp) throws InvalidDateException
Calendar cal = Calendar.getInstance();
cal.setTime(new Date(timestamp));
init(cal);
* Construct the date from the specified string. Note that the date must
* be in day/month/year format.
* @param date The date string.
* @exception InvalidDateException The date passed in is invalid.
public SlacDate(String date) throws InvalidDateException
init(date);
* Construct the date from the specified string. The format passed in will
* identify the format of the date.
* @param date The date string.
* @param format The format of the date.
* @exception InvalidDateException The date passed in is invalid.
public SlacDate(String date, int format) throws InvalidDateException
if (format == FormatCCYYMMDD || format == FormatCCYYMMDDHHMM || format == FormatCCYYMMDDHHMMSS)
boolean valid = false;
date = date.trim();
if (date.length() >= 8)
try
int year = Integer.parseInt(date.substring(0,4));
int month = Integer.parseInt(date.substring(4,6));
int day = Integer.parseInt(date.substring(6,8));
int hour;
int min;
int sec;
if (date.length() > 8)
hour = Integer.parseInt(date.substring(8,10));
min = Integer.parseInt(date.substring(10,12));
if (date.length() >= 14)
sec = Integer.parseInt(date.substring(12,14));
else
sec = DefaultSeconds;
else
hour = DefaultHours;
min = DefaultMinutes;
sec = DefaultSeconds;
init(year, month, day, hour, min, sec, DefaultMillis);
valid = true;
catch (Exception e)
if (!valid)
throw new InvalidDateException("Invalid date: " + date + " for the specified format");
else if (format == FormatDB2TIMESTAMP || format == FormatUDBTIMESTAMP)
// 2002-02-04 10:49:30.999000 (UDB)
// 2002-02-04-10.49.30.999000 (DB2)
int year = Integer.parseInt(date.substring(0,4));
int month = Integer.parseInt(date.substring(5,7));
int day = Integer.parseInt(date.substring(8,10));
int hour = Integer.parseInt(date.substring(11,13));
int min = Integer.parseInt(date.substring(14,16));
int sec = Integer.parseInt(date.substring(17,19));
int millis = Integer.parseInt(date.substring(20,23));
init(year, month, day, hour, min, sec, millis);
else
init(date);
* Construct the date with the java.util.Date passed in.
public SlacDate(Date date)
init(date);
* Init the date with the java.util.Date passed in.
private void init(Date date)
Calendar cal = Calendar.getInstance();
cal.setTime(date);
init(cal);
* Return whether this date is after the date passed in.
* @d2 The date to compare against.
* @return Whether this date is after the date passed in.
public boolean after(SlacDate d2)
int xx = d2.getYear();
if (m_yyyy > xx)
return true;
else if (m_yyyy < xx)
return false;
else
xx = d2.getMonth();
if (m_mm > xx)
return true;
else if (m_mm < xx)
return false;
else
xx = d2.getDate();
if (m_dd > xx)
return true;
else if (m_dd < xx)
return false;
else
xx = d2.getHour();
if (m_hh > xx)
return true;
else if (m_hh < xx)
return false;
else
xx = d2.getMinute();
if (m_min > xx)
return true;
else if (m_min < xx)
return false;
else
xx = d2.getSecond();
if (m_ss > xx)
return true;
else if (m_ss < xx)
return false;
else
return (m_mil > d2.getMillisecond());
private void appendHoursMinutes(StringBuffer str, String separator)
if (m_hh < 10)
str.append(ZERO);
str.append(Integer.toString(m_hh));
if (!separator.equals(EMPTY))
str.append(separator);
if (m_min < 10)
str.append(ZERO);
str.append(Integer.toString(m_min));
private void appendTime(StringBuffer str, String separator, boolean addMillis)
appendHoursMinutes(str, separator);
if (!separator.equals(EMPTY))
str.append(separator);
if (m_ss < 10)
str.append(ZERO);
str.append(Integer.toString(m_ss));
if (addMillis)
if (!separator.equals(EMPTY))
str.append(separator);
if (m_mil < 100)
str.append(ZERO);
if (m_mil < 10)
str.append(ZERO);
str.append(m_mil);
* Version of the asString() method which defaults to FormatDDMMCCYY.
* <p>An example date in this format is:
* <pre>
* 25-02-1999
* </pre>
* @return The Date as a string in DDMMCCYY format.
public String asString()
return asString(FormatDDMMCCYY);
* Convert the date to a String. This will format the Date as defined by the format
* passed in. The default parameter is FormatDDMMCCYY.
* The valid formats are:
* <ul>
* <li>FormatDDMMCCYY</li>
* <li>FormatMMDDCCYY</li>
* <li>FormatDATETIME</li>
* <li>FormatDDMMTIME</li>
* <li>FormatTIMESTAMP</li>
* <li>FormatCCYYMMDD</li>
* <li>FormatCCYYMMDDHHMM</li>
* <li>FormatCCYYMMDDHHMMSS</li>
* <li>FormatDDMMCCYYTIME</li>
* <li>FormatDATEVERBOSE</li>
* <li>FormatDATETIMEVERBOSE</li>
* <li>FormatHHMMSS</li>
* <li>FormatHHMMSSMIL</li>
* <li>FormatDB2TIMESTAMP</li>
* <li>FormatUDBTIMESTAMP</li>
* </ul>
* @param format The format to return the string in.
* @return The date in string format (as specified by the format parameter).
public String asString(int format)
StringBuffer str = new StringBuffer(20);
if (format == FormatDB2TIMESTAMP || format == FormatUDBTIMESTAMP)
str.append(Integer.toString(getYear()));
str.append(HYPHEN);
int month = getMonth();
if (month < 10)
str.append(ZERO);
str.append(Integer.toString(month));
str.append(HYPHEN);
int day = getDate();
if (day < 10)
str.append(ZERO);
str.append(Integer.toString(day));
String dateTimeSeparator = new String();
if (format == FormatDB2TIMESTAMP)
dateTimeSeparator = HYPHEN;
else if (format == FormatUDBTIMESTAMP)
dateTimeSeparator = SPACE;
str.append(dateTimeSeparator);
String timeSeparator = new String();
if (format == FormatDB2TIMESTAMP)
timeSeparator = PERIOD;
else if (format == FormatUDBTIMESTAMP)
timeSeparator = COLON;
appendTime(str, timeSeparator, true);
str.append("000");
else if (format == FormatDATETIME || format == FormatMMMDDTIME || format == FormatTIMESTAMP)
str.append(getMonthNameAbbrev());
str.append(SPACE);
if (m_dd < 10)
str.append(ZERO);
str.append(Integer.toString(m_dd));
str.append(SPACE);
appendTime(str, COLON, false);
if (format == FormatDATETIME)
str.append(SPACE);
str.append(Integer.toString(m_yyyy));
else if (format == FormatTIMESTAMP)
str.append(COLON);
str.append(formattedMillis(m_mil));
else if (format == FormatHHMMSS)
appendTime(str, COLON, false);
else if (format == FormatHHMMSSMIL)
appendTime(str, COLON, true);
else if (format == FormatCCYYMMDD || format == FormatCCYYMMDDHHMM || format == FormatCCYYMMDDHHMMSS)
str.append(Integer.toString(m_yyyy));
if (m_mm < 10)
str.append(ZERO);
str.append(Integer.toString(m_mm));
if (m_dd < 10)
str.append(ZERO);
str.append(Integer.toString(m_dd));
if (format == FormatCCYYMMDDHHMMSS)
appendTime(str, EMPTY, false);
else if (format == FormatCCYYMMDDHHMM)
appendHoursMinutes(str, EMPTY);
else if (format == FormatDATEVERBOSE || format == FormatDATETIMEVERBOSE)
str.append(Integer.toString(m_dd));
if (m_dd > 10 && m_dd < 14)
str.append(DayExtension[0]);
else
str.append(DayExtension[m_dd%10]);
str.append(SPACE);
str.append(getMonthName());
str.append(SPACE);
str.append(Integer.toString(m_yyyy));
if (format == FormatDATETIMEVERBOSE)
str.append(",");
str.append(SPACE);
appendTime(str, COLON, false);
else
// DDMMCCYY, MMDDCCYY, DDMMCCYYTIME
int first;
int second;
if (format != FormatMMDDCCYY)
first = getDate();
second = getMonth();
else
second = getDate();
first = getMonth();
if (first < 10)
str.append(ZERO);
str.append(Integer.toString(first));
str.append(s_dateSep);
if (second < 10)
str.append(ZERO);
str.append(Integer.toString(second));
str.append(s_dateSep);
str.append(Integer.toString(getYear()));
if (format == FormatDDMMCCYYTIME)
str.append(SPACE);
appendTime(str, COLON, false);
return str.toString();
* Return whether this date is before the date passed in
* @d2 The date to compare against.
* @return Whether this date is before the date passed in.
public boolean before(SlacDate d2)
return (!after(d2) && !equals(d2));
* Clone the current date.
* @return The cloned SlacDate object
public Object clone()
SlacDate d = new SlacDate();
d.m_dd = m_dd;
d.m_mm = m_mm;
d.m_yyyy = m_yyyy;
d.m_hh = m_hh;
d.m_min = m_min;
d.m_ss = m_ss;
d.m_mil = m_mil;
return d;
* Compare this date with the supplied date.
* Hours, minutes, seconds and milliseconds are taken into consideration.
* Returns:
* -1 this date is before the supplied date.
* 0 this date is equal to the supplied date.
* 1 this date is after the supplied date.
public int compareTo(Object o2)
SlacDate d2 = (SlacDate)o2;
if (equals(d2))
return 0;
if (after(d2))
return 1;
return -1;
* Compare this date with the supplied date.
* Hours, minutes, seconds and milliseconds are NOT taken into consideration.
* Returns:
* -1 this date is before the supplied date.
* 0 this date is equal to the supplied date.
* 1 this date is after the supplied date.
public int compareDate(Object o2)
SlacDate baseDate = (SlacDate)o2;
SlacDate startBaseDate = new SlacDate(baseDate.getCalendar().getTime());
startBaseDate.setHour(0);
startBaseDate.setMinute(0);
startBaseDate.setSecond(0);
startBaseDate.setMillisecond(0);
SlacDate endBaseDate = new SlacDate(baseDate.getCalendar().getTime());
endBaseDate.setHour(23);
endBaseDate.setMinute(59);
endBaseDate.setSecond(59);
endBaseDate.setMillisecond(999);
int compare = 0;
if (before(startBaseDate))
compare = -1;
else if (after(endBaseDate))
compare = 1;
return compare;
* Compare this date with today's date.
* Hours, minutes, seconds and milliseconds are NOT taken into consideration.
* Returns:
* -1 this date is before today.
* 0 this date is equal to today.
* 1 this date is after today.
public int compareToToday()
return compareDate(today());
* Calculate the difference (in days) between the two dates.
* Note the difference may be negative.
* @param from The <i>start</i> date
* @param to The <i>to</i> date
* @return The difference between the dates in days.
public static int daysBetween(SlacDate from, SlacDate to)
int dayFrom;
int monthFrom;
int yrFrom;
int dayTo;
int monthTo;
int yrTo;
int mult = 1;
if (from.after(to))
mult=-1;
dayFrom = to.getDate();
monthFrom = to.getMonth();
yrFrom = to.getYear();
dayTo = from.getDate();
monthTo = from.getMonth();
yrTo = from.getYear();
else
dayFrom = from.getDate();
monthFrom = from.getMonth();
yrFrom = from.getYear();
dayTo = to.getDate();
monthTo = to.getMonth();
yrTo = to.getYear();
int cnt=0;
try
if (yrFrom != yrTo)
// Different Years.
for (int i=yrFrom+1; i<yrTo; i++)
cnt += SlacDate.daysInYear(i);
for (int i=monthFrom+1; i<13; i++)
cnt+=daysInMonth(i, yrFrom);
for (int i=1; i<monthTo; i++)
cnt+=daysInMonth(i, yrTo);
cnt += (daysInMonth(monthFrom, yrFrom)-dayFrom);
cnt += dayTo;
else
if (monthFrom != monthTo)
// Same Year but different months.
for (int i=monthFrom+1; i<monthTo; i++)
cnt+=daysInMonth(i, yrFrom);
cnt += (daysInMonth(monthFrom, yrFrom)-dayFrom);
cnt += dayTo;
else
// Same Year and month.
cnt += (dayTo-dayFrom);
catch (InvalidDateException ide)
// This should never happen
return cnt * mult;
* Calculate the number of days from the specified date.
* Note the difference may be negative.
* @param date The date to calculate from
* @return The diference between the two dates in days (may be negative).
public int daysFrom(SlacDate date)
return daysBetween(date, this);
* Calculates the number of days in a given month in a given year
* copes with century dates!
* @param month The month to determine the day count
* @param year The year the month is in (only relevant for February).
* @exception InvalidDateException Invalid parameters passed in. Ie the month was >= 12
* or the month was < 0.
public static int daysInMonth(int month, int year) throws InvalidDateException
if (month > 12 || month <= 0)
throw new InvalidDateException("Invalid month specified to SlacDate.daysInMonth(): " + month);
// month-1, because DaysInMonth array is 0-based.
return (month == FEBRUARY && isLeapYear(year)) ? 29 : DaysInMonth[month-1];
* Calculates the number of days in a given year.
* @param year The year the month is in (only relevant for February).
public static int daysInYear(int year)
return (isLeapYear(year)) ? 365 : 364;
* Calculate the number of days to the specified date.
* Note the difference may be negative.
* @param date The date to calculate to
* @return The diference between the two dates in days (may be negative).
public int daysTo(SlacDate date)
return daysBetween(this, date);
* Decrement the date by the specified number of years, months and days.
* @param years The number of years to increment by
* @param months The number of months to increment by
* @param days The number of days to increment by
public void decrement(int years, int months, int days)
decrementYears(years);
decrementMonths(months);
decrementDays(days);
* Decrement the date by the specified number of days.
* @param days The number of days to decrement by
public void decrementDays(int days)
incrementDays(days * -1);
* Decrement the date by the specified number of hours.
* @param hours The number of hours to decrement by
public void decrementHours(int hours)
incrementHours(hours * -1);
* Decrement the date by the specified number of milliseconds.
* @param seconds The number of seconds to decrement by
public void decrementMilliseconds(int milliseconds)
incrementMilliseconds(milliseconds * -1);
* Decrement the date by the specified number of minutes.
* @param minutes The number of minutes to decrement by
public void decrementMinutes(int minutes)
incrementMinutes(minutes * -1);
* Decrement the date by the specified number of months.
* @param years The number of months to decrement by
public void decrementMonths(int months)
incrementMonths(months * -1);
* Decrement the date by the specified number of seconds.
* @param seconds The number of seconds to decrement by
public void decrementSeconds(int seconds)
incrementSeconds(seconds * -1);
* Decrement the date by the specified number of years.
* @param years The number of years to decrement by
public void decrementYears(int years)
incrementYears(years * -1);
* Calculate the difference between two dates to the nearest second as a String.
* @param from The start date
* @param to The end date
public static String differenceBetween(SlacDate from, SlacDate to)
SlacDate f, t;
if (from.after(to))
t = from;
f = to;
else
t = to;
f = from;
int secs = 0;
int mins = 0;
int hours = 0;
int days = 0;
int months = 0;
int years = 0;
secs = t.getSecond() - f.getSecond();
mins = t.getMinute() - f.getMinute();
hours = t.getHour() - f.getHour();
days = t.getDate() - f.getDate();
months = t.getMonth() - f.getMonth();
years = t.getYear() - f.getYear();
if (secs < 0)
secs += 60;
mins--;
if (mins < 0)
mins += 60;
hours--;
if (hours < 0)
hours += 24;
days--;
if (days < 0)
try
days += daysInMonth(f.getMonth(), f.getYear());
catch (InvalidDateException ide)
days += 30;
months--;
if (months < 0)
months += 12;
years--;
StringBuffer sb = new StringBuffer();
sb.append(years).append(s_dateSep);
sb.append(months).append(s_dateSep);
sb.append(days).append(SPACE);
sb.append(hours).append(COLON);
sb.append(mins).append(COLON);
sb.append(secs);
return sb.toString();
* Calculate the difference between the date passed in and this date.
* Note that if the date passed in is in the future the difference will be
* negative.
* @param from The date from which to return the difference
* @return The difference from the date passed in in String format
public String differenceFrom(SlacDate from)
return differenceBetween(from, this);
* Calculate the difference between this date and the one passed in.
* Note that if the date passed in is in the past the difference will be
* negative.
* @param to The date to which to return the difference
* @return The difference to the date passed in in String format
public String differenceTo(SlacDate to)
return differenceBetween(this, to);
* Return whether the two dates are the same. This will check right down to the second.
* @param d2 The date to compare against
* @return Whether the dates are the same.
public boolean equals(SlacDate d2)
return ((m_yyyy == d2.m_yyyy) &&
(m_mm == d2.m_mm) &&
(m_dd == d2.m_dd) &&
(m_hh == d2.m_hh) &&
(m_min == d2.m_min) &&
(m_ss == d2.m_ss) &&
(m_mil == d2.m_mil));
public String format(DateFormat df)
Calendar cal = getCalendar();
return df.format(cal.getTime());
private final String formattedMillis(int millis)
String rString = null;
if (millis < 10)
rString = "00" + millis;
else if (millis < 100)
rString = ZERO + millis;
else
rString = EMPTY + millis;
return rString;
public Calendar getCalendar()
Calendar cal = Calendar.getInstance();
cal.set(m_yyyy, m_mm-1, m_dd, m_hh, m_min, m_ss);
cal.set(Calendar.MILLISECOND, m_mil);
return cal;
* Return the Date/Time in CCYYMMDD format.
* <p>An example date in this format is:
* <pre>
* 19990225
* </pre>
* @return The Date as a string in CCYYMMDD format.
public String getCCYYMMDD()
return asString(FormatCCYYMMDD);
* Return the Date/Time in CCYYMMDDHHMM format.
* <p>An example date in this format is:
* <pre>
* 199902251423
* </pre>
* @return The Date as a string in CCYYMMDDHHMM format.
public String getCCYYMMDDHHMM()
return asString(FormatCCYYMMDDHHMM);
* Return the Date/Time in CCYYMMDDHHMMSS format.
* <p>An example date in this format is:
* <pre>
* 19990225142356
* </pre>
* @return The Date as a string in CCYYMMDDHHMMSS format.
public String getCCYYMMDDHHMMSS()
return asString(FormatCCYYMMDDHHMMSS);
public int getDate() { return m_dd; }
* Return the date in DATETIME format.
* <p>An example date in this format is:
* <pre>
* Feb 25 14:21:09 1999
* </pre>
* @return The Date as a string in DATETIME format.
public String getDATETIME()
return asString(FormatDATETIME);
* Return the Date/Time in DATETIMEVERBOSE format.
* <p>An example date in this format is:
* <pre>
* 25th February 1999, 14:21:09
* </pre>
* @return The Date as a string in DATETIMEVERBOSE format.
public String getDATETIMEVERBOSE()
return asString(FormatDATETIMEVERBOSE);
* Return the Date/Time in DATEVERBOSE format.
* <p>An example date in this format is:
* <pre>
* 25th February 1999
* </pre>
* @return The Date as a string in DATEVERBOSE format.
public String getDATEVERBOSE()
return asString(FormatDATEVERBOSE);
* Return the day o -
How to validate date picker value
Hi,
When a date is entered manually in the date picker .ie 01/03/08 the year 08 is saved as 0008 in the database rather than 2008. How to validate the value in date picker to save the year as 2008 instead of 0008.
VenThe date picker does not always "store" the value for you - you create it with a particular format such as DD-MON-YY and then like any character to date field you need to be careful to use a format mask and to_date. Alternatively, change the format to DD-MON-YYYY.
Are you using this in a query or defined as a page item? Do you have the app on the APEX site?
Phil -
Urgent help: how to create data source for Weblogic RMI driver
Hi,
Please let me how to create data source for Weblogic RMI driver using Administrator
console.
I understand that the following steps are required:
1.Create connection pool for the RMI driver by specfiying URL as
jdbc:weblogic:rmi and Driver as weblogic.jdbc.rmi.Driver. Now
comes the problem.. what do put in properties text area? I am
talking about key/value pairs required?
2. Having done step 1 ( which I was not able to do) , create a new DataSource
mapping to the connection pool created from step 1.
How to accomplish step 1 ? I want to finally connect to Oracle
database. Please help me.
pradeep bhatDataSource will internally do that for you (It will use RMI internaly) . You
dont have to worry about the details of using RMI driver. Thats what is a
DataSource is for.
sree
"pradeep bhat" <[email protected]> wrote in message
news:[email protected]...
Hi Sree,
What u have written is abt configuting Datasource for type 2 and
4 drivers.
But I want to know how to create data source for RMI driver. If
I map this datasource to connection pool that is created for
type 2 or 4 drivers, i don't understand why RMI drivers are
required in first place. If i do map the data source to connection pool
created
for type 2 or 4 drivers then where i
would not have used the URL as jdbc:weblogic:rmi and Driver as
weblogic.jdbc.rmi.Driver.
Hope u will help me.
pradeep bhat
"Sree Bodapati" <[email protected]> wrote:
Hi Pradeep
To create a connection pool you have to use a database driver not RMI
driver. So use a thin driver or the WebLogic jDriver for Oracle to setup
your connection pool. Once the connection pool is created you can create
a
DataSource and use this datasource to connect to the database.
The RMI driver can be used to get connections from the database via the
connection pool and in that case you dont need a datasource. Recommended
approach is to use a DataSource.
hth
sree
"PRADEEP BHAT" <[email protected]> wrote in message
news:[email protected]...
Hi,
Please let me how to create data source for Weblogic RMI driver using
Administrator
console.
I understand that the following steps are required:
1.Create connection pool for the RMI driver by specfiying URL as
jdbc:weblogic:rmi and Driver as weblogic.jdbc.rmi.Driver. Now
comes the problem.. what do put in properties text area? I am
talking about key/value pairs required?
2. Having done step 1 ( which I was not able to do) , create a new
DataSource
mapping to the connection pool created from step 1.
How to accomplish step 1 ? I want to finally connect to Oracle
database. Please help me.
pradeep bhat -
Urgent help: how to create data source for Weblogic T3 driver
Hi,
Please let me how to create data source for Weblogic T3 driver
using Administrator console.
I understand that the following steps are required:
1.Create connection pool for the RMI driver by specfiying URL
as jdbc:weblogic:rmi and Driver as weblogic.jdbc.rmi.Driver.
Now comes the problem.. what do put in properties text area?
I am talking about key/value pairs required?
2. Having done step 1 ( which I was not able to do) , create a
new DataSource mapping to the connection pool created from
step 1.
How to accomplish step 1 ? I want to finally connect to Oracle database. Please
help me.
pradeep bhatHi,
Please let me how to create data source for Weblogic T3 driver
using Administrator console.
I understand that the following steps are required:
1.Create connection pool for the RMI driver by specfiying URL
as jdbc:weblogic:rmi and Driver as weblogic.jdbc.rmi.Driver.
Now comes the problem.. what do put in properties text area?
I am talking about key/value pairs required?
2. Having done step 1 ( which I was not able to do) , create a
new DataSource mapping to the connection pool created from
step 1.
How to accomplish step 1 ? I want to finally connect to Oracle database. Please
help me.
pradeep bhat -
How to validate date and timestamp format? Please help!
Hi experts,
I have a input field "receipt_date" with is of char20 type. It contains date and timestamp value like 20090429T054509.000Z
In my ABAP code I want to validate if "receipt_date" value is in the format YYYYMMDDTHHMMSS.MMMZ. If not then display error message. How can do this validation? Is there any existing function module that does this kind of validation? Please help!
Thanks & Regards
GopalHi Gopal,
Can you check whether the FM CACS_TIMESTAMP_GET_DATE is available in XApps? If yes, use this to identify a valid timestamp.
Sample code:
CALL FUNCTION 'CACS_TIMESTAMP_GET_DATE'
EXPORTING
i_timestamp = lv_stamp
IMPORTING
e_date = lv_datum
e_time = lv_time.
Hope this helps! Do let me know if you need anything else!!
Cheers,
Shailesh.
Always provide feedback for helpful answers -
How to validate data in editable ALV report after making changes
Hi Folks,
My requirement is to display data in ALV format with quantity field is editable. Once we get the data in display mode only quantity field is enabled right. I am going to make changes to that quantity field and updating that modifed value to the database table. Before updating databse table i want to validate the data for perticluar field which I edidted(Quantity).
Can you guide me on this.
Currently I am using FM: GET_GLOBALS_FROM_SLVC_FULLSCR and calling the method CHECK_CHANGED_DATA.
I want to validate the quantity data.
If I entered negative value like -100 instead of 100. It should validate and show some popup screen or message.
Pls guide me on this or give some code to do that.
Thanks&Regards,
SurendraHey Surendra,
Check if this helps: Link:[Click here|Edit Field in Oops Alv;
There are many posts available for this requirement. Please look SDN/web for same.
Regards,
Santosh -
How to validate date using case statement.
I have date like 022212. I split month,date,year using STUFF Function. Now, i have to validate month in range 01-12 and date in range 01-31. Can some one help me with the query.
Thanks, Shyam Reddy.That is not date; it is apparently a string (we have no DDL because you are so rude). Any competent SQL programmer will use DATE. You want help with a query, but there is no query.
CAST ('20' + SUBSTRING (crap_string_date, 5,2)+'-' + SUBSTRING (crap_string_date, 1,2) + '-' + SUBSTRING (crap_string_date, 3,2) AS DATE) AS redddy_screwed_up_date
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL -
How to validate date fields in the flash form
i want to validate the date fields to make sure the values
are not greater than today's date and from-date is less than or
equal to to-date in the flash form. Does the actionscript have a CF
DateDiff function for the validatation?
ThanksI finally (after much reading up on actionscript) figured out
my problem with date validation...which was similar to yours...
I posted the solution I found for my AS date validation issue
here:
http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?catid=22&threadid=1232361
I hope it helps!!! -
HELP How to rescue data from a HD with only the Terminal utility working
I can no longer access the hard disk on a 2008 unibody Mac Book after an failed OS upgrade (?). Running the original OS 10.5.5 from the grey CD-ROM that came with the device and using the "Terminal" utility, I find all data in their place and within the correct structure.
I tried to make an image of the HD or to copy the files to the external disc using the Hard Disk utility, but all attempts have produced an "operation not possible" message. Target mode will not work, as the device has no firewire connection implemented.
How can I access the files (I know they are there, I can see them...) and e. g. copy them to an external disc or rescue them with an other method?
PLEASE HELP ME
Thank you, Martin
PS Please don't tell me that experienced users will always have backups of their files: It is my wife's device and that's exactly what I have been telling her for years. Still, it's my wife...Click here and choose 10.5 from the menu for usage instructions. Installing the OS on an external drive is done the same way as doing it on the internal drive, but it needs to be formatted as Mac OS Extended (Journaled).
(61589) -
How to validate data is in specific list while loading from SQL*Loader
I have a sample data file like below
1,name1,05/02/2012 10:00:00,blue
2,name2,06/02/2012 10:00:00,red
3,name3,07/02/2012 10:00:00,yellow
4,name4,08/02/2012 10:00:00,white
I would like to validate 4Th column to be a valid color (ie) All color should be in a specific list, if it is not in the lis then the record should do to bad/discard file
How can do that while loading Data From SQL*Loader?user8860934 wrote:
I have a sample data file like below
1,name1,05/02/2012 10:00:00,blue
2,name2,06/02/2012 10:00:00,red
3,name3,07/02/2012 10:00:00,yellow
4,name4,08/02/2012 10:00:00,white
I would like to validate 4Th column to be a valid color (ie) All color should be in a specific list, if it is not in the lis then the record should do to bad/discard file
How can do that while loading Data From SQL*Loader?Probably a lot easier with an EXTERNAL TABLE (they're much more flexible).
Is SQL Loader a mandatory requirement for some reason? -
How to validate Date value in Text Column
Hi All,
I have entered DATE value in text item field(Char Data Type), Now how can i validate, the entered date is valid or not.
Thanks in advance.Well, the easiest way would be to make the item of datatype DATE.
Another possibility is to try to convert the given value to a date in the WHEN-VALIDATE-ITEM-trigger, like
DECLARE
dt DATE;
BEGIN
dt:=TO_DATE(:BLOCK.ITEM);
-- if code comes here, the date is valid
EXCEPTION
WHEN OTHERS THEN
-- seems to be no valid date
MESSAGE('Error');
RAISE FORM_TRIGGER_FAILURE;
END;Edited by: Andreas Weiden on 19.12.2010 12:23 -
How to validate date columns in tabular forms?
Hi,
I have two date columns in a tabular form
1.Start_date 2.End_date so here i need to validate the end_date as should not be lesser value than start_date column
so any solution for this?Hi,
use a validation of type "Function returning boolean" and the following code:
IF to_date(:YOUR_END_DATE,'YYYY-MM-DD') < to_date(:YOUR_START_DATE,'YYYY-MM-DD') THEN RETURN FALSE;
ELSE RETURN TRUE;
END IF;The date format is of course in your choice.
Hope this helps...
Thanks
Sandro -
Help , How to get data from database using recordset with UI API
I want to get a data from database
when I want to create recordset i notice that UI API didn't has record set
so I created recordset using DI API (SAPbobscom.recordset and SAPbobscom.company)
======================================================
Dim oCompanyUI As SAPbouiCOM.Company <<UI API
Dim oRecSet As New SAPbobsCOM.Recordset << DI API
Dim oCompanyDI As New SAPbobsCOM.Company << DI API
'=====================================================
oCompanyDI.Connect
Set oRecSet = oCompanyDI.GetBusinessObject(BoRecordset)
oRecSet.DoQuery ("SELECT T0.CardCode, T0.CardName FROM OCRD T0")
SBO_Application.MessageBox oRecSet.Fields.Item(1).Value
======================================================
but I got an error it said "you are not connected to company"
I'm really don't have an idea about how to get a data from using UI API (exp I want to get a date or costumer code)
can someone help me please, I really need it
Thanksyou need a single sign on
Dim oDICompany As SAPbobsCOM.Company
Dim sCookie As String
Dim sConnStr As String
Dim ret As Integer
oDICompany = New SAPbobsCOM.Company
sCookie = oDICompany.GetContextCookie
sConnStr = SBO_Application.Company.GetConnectionContext(sCookie)
If oDICompany.Connected Then
oDICompany.Disconnect()
End If
ret = oDICompany.SetSboLoginContext(sConnStr)
If Not ret = 0 Then
SBO_Application.MessageBox("set Login Context failed!")
Exit Sub
End If
ret = oDICompany.Connect()
If Not ret = 0 Then
SBO_Application.MessageBox("Company Connect failed!")
End If
Maybe you are looking for
-
Hello CSM Gurus, Would there be any performance issues in CSM client software design if multiple instances of CSM client by multiple users ran concurrently on a Windows Server 2008 R2(64 bits) while CSM users accessing the server via Remote Desktop S
-
Dynamic columns in ABAP queries
Hi I want to select column names dynamically from a DDIC table. For example, the normal way is select <column_name1>, <column_name2> from <tablename>. But what I need is something like select variable1, variable2 from <tablename> where variable1
-
Using jtextpane as jlist cell renderer component
hi, I want to use Jlist (in a Jscrollpane) to list a series of boxes of text. The boxes have to be kept the same width, but the height can vary depending on the amount of text. I want to use jtextpane because it wraps automatically on word boundaries
-
Error Msg - Device Not Compatible with IPhone - Want to switch to airplan?
I keep getting this error as if I have a device hooked to my phone. I have nothing attached. Statred getting it a couple of days ago and it pops up every 5 minutes or so. Have done a complete RESET/RESTORE and I still get it. Recently added a few new
-
Is Oracle client 10.2.0.4 is supporting IBM Rational Clearquest tool ?
Is Oracle client 10.2.0.4 is supporting IBM Rational Clearquest tool 7.0.1.1-IFIX02? If yes, please provide me valid documenation link. Edited by: user11888661 on Sep 10, 2009 10:59 PM