Thank you for visiting! If you liked the site, please add a bookmark, else add a critical comment! Would you like to visit Greece? Traditional Greek flag This real estate site is only available in Greek! The holy mountain

Tuesday 13 July 2010

Getting the current date in your model layer

Besides the standard way of getting the current date as a String, one could come across the need of inserting in a database table column of date datatype. Thus, the well known code snippet won't be suitable:

 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 
 java.util.Date date = new java.util.Date();
 
 String datetime = dateFormat.format(date);
 
 System.out.println("Current Date Time : " + datetime);
 
In case you use ADF business components for your Model project, you get the 
current date in a slightly different way. Consider for example the following code snippet,
from an adf business components, employees entity object: 
 
import oracle.jbo.domain.Date;
...

              
protected void doDML(int operation, TransactionEvent e) {
                if (operation == DML_UPDATE) {
    ...
               histStartDate = row.getEndDate();
              /*Check whether end date equals current date*/
              if (histStartDate.equals(new Date(Date.getCurrentDate()))){
                  System.out.println("End date equals current date!");
                  }
      
In case you need to convert  oracle.jbo.domain.Date to java.util.Date, please consult this:

http://forums.oracle.com/forums/thread.jspa?threadID=2185902&tstart=15

or

http://www.ecotronics.ch/webdesign/javadate.htm
  

Finally, in case you prefer EJB's for your Model project instead, you might consider the following example:

/*Typical current date for DB inserts */
java.util.Date today = new java.util.Date();
java.sql.Date bidDate = new java.sql.Date(today.getTime());
/* public void setBidDate(Date bidDate)*/
newBid.setBidDate(bidDate);

Which is in a sense, the most paradox way of all, since in order to get the current date, you actually need to call getTime()!

References

More help about: using timestamps
http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html