Page Count

Monday, October 26, 2015

Date Utility Class in Java

/**
 * Date Util might be useful in your daily activities.
 */
package com.sbs.dateutil;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @author bhargav
 *
 */
public class DateUtil {

    /**
     *
     */
    private DateUtil() {

    }

    /**
     * @param args
     */
    public static void main(String[] args) {

        //Date date = new Date();
        //Another way to get the current date from Calender object is
        Date utilDate = Calendar.getInstance().getTime();
       
        System.out.println("Default Util Curent Date and time :" + utilDate);
        SimpleDateFormat DATE_FORMAT = null;

        DATE_FORMAT = new SimpleDateFormat("dd-MM-YYYY");
        System.out.println("dd-MM-YYYY Formatted Date " + DATE_FORMAT.format(utilDate));

        DATE_FORMAT = new SimpleDateFormat("dd-MM-YY");
        System.out.println("dd-MM-YY Formatted Date " + DATE_FORMAT.format(utilDate));
       
           //Capital HH denotes hours in 24 hours format where as
          //Small 'hh' denotes 12 hours format in 'am' and 'pm'
        DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy:HH:mm:SS");
        System.out.println("dd-MM-yy:HH:mm:SS Formatted Date  " +                     DATE_FORMAT.format(utilDate));

        //HH denotes hours in 24 hours format where as 'hh' denotes 12 hours format in 'am' and 'pm'
        DATE_FORMAT = new SimpleDateFormat("dd-MM-yyyy:HH:mm:SS Z");
        System.out.println("dd-MM-yy:HH:mm:SS Z Formatted Date  " + DATE_FORMAT.format(utilDate));

        DATE_FORMAT = new SimpleDateFormat("MM/dd/yyyy");
        System.out.println("MM/dd/yyyy Formatted Date " + DATE_FORMAT.format(utilDate));
       
        //Default SQL Date
        java.sql.Date sqlDate = new java.sql.Date(new Date().getTime());
        System.out.println(" java.util.Date into java.sql.Date --> "+sqlDate);
       
        //SQL Date in YYY-MM-dd format
        System.out.println("Default Util Date :" + new SimpleDateFormat("YYY-MM-dd").format(utilDate));
       
       
        //Be always remember that Converting java.util.Date to java.sql.Date will lose the hours,minutes and seconds
        //converting Util Date to Sql Date
        java.sql.Date sqlDate1 = getSqlFromUtilDate(utilDate);
        System.out.println(" java.util.Date into java.sql.Date --> "+sqlDate1);
       
        //converting Sql Date to Util Date to
        java.sql.Date sqlDate2 = new java.sql.Date(Calendar.getInstance().getTime().getTime());
        System.out.println("Converion of sql Date into util Date: "+geUtilFromSqlDate(sqlDate2));
       
    }
   
   
    /**
     * @param date
     * @return
     */
    public static java.sql.Date getSqlFromUtilDate(java.util.Date date) {
        java.sql.Date sqlDate = new java.sql.Date(date.getTime());
        return  sqlDate;
    }
   
    /**
     * @param date
     * @return
     */
    public static java.util.Date geUtilFromSqlDate(java.sql.Date date) {
        Date utilDate = new Date(date.getTime());
        return utilDate;
    }


}


  LocalDate date = LocalDate.now();
  DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy MM dd");
  String text = date.format(formatter);
  LocalDate parsedDate = LocalDate.parse(text, formatter);
 
All letters 'A' to 'Z' and 'a' to 'z' are reserved as pattern letters. The following pattern letters are defined:
  Symbol  Meaning                     Presentation      Examples
  ------  -------                     ------------      -------
   G       era                         text              AD; Anno Domini; A
   u       year                        year              2004; 04
   y       year-of-era                 year              2004; 04
   D       day-of-year                 number            189
   M/L     month-of-year               number/text       7; 07; Jul; July; J
   d       day-of-month                number            10

   Q/q     quarter-of-year             number/text       3; 03; Q3; 3rd quarter
   Y       week-based-year             year              1996; 96
   w       week-of-week-based-year     number            27
   W       week-of-month               number            4
   E       day-of-week                 text              Tue; Tuesday; T
   e/c     localized day-of-week       number/text       2; 02; Tue; Tuesday; T
   F       week-of-month               number            3

   a       am-pm-of-day                text              PM
   h       clock-hour-of-am-pm (1-12)  number            12
   K       hour-of-am-pm (0-11)        number            0
   k       clock-hour-of-am-pm (1-24)  number            0

   H       hour-of-day (0-23)          number            0
   m       minute-of-hour              number            30
   s       second-of-minute            number            55
   S       fraction-of-second          fraction          978
   A       milli-of-day                number            1234
   n       nano-of-second              number            987654321
   N       nano-of-day                 number            1234000000

   V       time-zone ID                zone-id           America/Los_Angeles; Z; -08:30
   z       time-zone name              zone-name         Pacific Standard Time; PST
   O       localized zone-offset       offset-O          GMT+8; GMT+08:00; UTC-08:00;
   X       zone-offset 'Z' for zero    offset-X          Z; -08; -0830; -08:30; -083015; -08:30:15;
   x       zone-offset                 offset-x          +0000; -08; -0830; -08:30; -083015; -08:30:15;
   Z       zone-offset                 offset-Z          +0000; -0800; -08:00;