![JAR search and dependency download from the Maven repository](/logo.png)
pparat-mkw.dateutility.dateutility.3.0.source-code.DateUtility Maven / Gradle / Ivy
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class DateUtility {
public static final String TH = "th_TH";
public static final String EN = "en_US";
public static final Locale thLocale = new Locale("th", "TH");
public static final Locale enLocale = new Locale("en", "US");
protected final static long ONEDAY = 10 * 10 * 10 * 24 * 60 * 60;
static long w_oneDay = (long) 1000.0 * 60 * 60 * 24;
// public static final Locale LOCALE_TH = new Locale("th", "TH");
public static final Locale LOCALE_TH = new Locale("TH", "TH");
public static final Locale LOCALE_US = new Locale("US", "US");
public static final SimpleDateFormat yearThFormated = new SimpleDateFormat("yyyy", LOCALE_TH);
public static final SimpleDateFormat yearEnFormated = new SimpleDateFormat("yyyy", Locale.US);
public static final SimpleDateFormat monthEnFormated = new SimpleDateFormat("MM", Locale.US);
public static final String DEFAULT_DATE_FORMATED = "dd/MM/yyyy";
public static final String DEFAULT_DATE_FORMATED_TH = "dd MMMMM yyyy";
public static final String DEFAULT_DATE_FORMATED_EN = "DDMMYYYY";
public static final String DEFAULT_TIME_FORMATED = "HH:mm:ss";
public static final String DEFAULT_MINUTE_TIME_FORMATED = "HH:mm";
public static final String DEFAULT_DATE_TIME_FORMATED = "dd/MM/yyyy HH:mm";
public static final String DEFAULT_FULL_DATE_TIME_FORMATED = "dd/MM/yyyy HH:mm:ss";
public static final String DEFAULT_FULL_MMDDYYYYHHMMSS = "MM/dd/yyyy HH:mm:ss";
public static final String DEFAULT_YEAR_MONTH_FORMATED = "yyyyMM";
public static final String DEFAULT_XML_DATE_FORMATED = "yyyyMMdd";
public static final String DEFAULT_DATETIME_FORMATED = DEFAULT_DATE_FORMATED + " " + DEFAULT_TIME_FORMATED;
public static final String DEFAULT_DATE_THAI_FORMATED = "dd MMMM yyyy";
public static final String DEFAULT_DATE_SEARCH_FORMATED = "yyyy-MM-dd";
public static final String DEFAULT_DATE_SEARCH_BPM_FORMATED = "yyyy-MM-dd HH:mm:ss";
public static final String DEFAULT_FULL_DATE_FORMATED = "yyyy-MM-dd HH:mm:ss.SSS";
public static final String DEFAULT_NO_DATE_FORMATED = "MM/yyyy";
public static final String DEFAULT_DATE_REPORT_FORMATED_EN = "MMMM dd, yyyy";
public static final String dd_MM_yyyy = "dd-MM-yyyy";
public static Timestamp addMinute(String startTime, String pattern, int minute) throws ParseException {
Calendar calendar = Calendar.getInstance();
calendar.setTime(convertStringToDate(startTime, pattern));
calendar.add(Calendar.MINUTE, minute);
return new Timestamp(calendar.getTimeInMillis());
}
public static Date getTime(Object theDateObj) {
java.sql.Time w_TempDate;
if (theDateObj == null) {
w_TempDate = null;
} else {
Date theDateDate = (Date) theDateObj;
System.out.print(theDateDate);
w_TempDate = new java.sql.Time(theDateDate.getTime());
}
return w_TempDate;
}
@SuppressWarnings("deprecation")
public static int getYearBudget(Date d) {
int year = d.getYear();
if (!(d.getDate() < 30 && d.getMonth() <= 8)) {
year = year + 1;
}
return year + 2443;
}
@SuppressWarnings("unused")
public static Date getDateTime(Object theDateObj) {
java.sql.Time w_TempDate;
Date theDateDate = null;
if (theDateObj == null) {
w_TempDate = null;
} else {
theDateDate = (Date) theDateObj;
System.out.print(theDateDate);
}
return theDateDate;
}
/**
* Convert from java.lang.String to java.util.Date.
*
* @param theDateStr java.util.Date
* @return java.lang.String
*/
public static Date getDate(String theDateStr) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_US);
return dateFormat.parse(theDateStr);
} catch (ParseException ex) {
return null;
}
}
public static Date getDateEn(String theDateStr) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_US);
return dateFormat.parse(theDateStr);
} catch (ParseException ex) {
return null;
}
}
public static Date getDateTH(String theDateStr) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_TH);
return dateFormat.parse(theDateStr);
} catch (ParseException ex) {
return null;
}
}
public static Date getDateEN(Date theDate) {
try {
if (theDate != null) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", LOCALE_US);
String dateStr = dateFormat.format(theDate);
Date dateResult = dateFormat.parse(dateStr);
return dateResult;
} else {
return null;
}
} catch (ParseException ex) {
return null;
}
}
public static Date getDateDefaultEN(Date theDate) {
try {
if (theDate != null) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_US);
String dateStr = dateFormat.format(theDate);
Date dateResult = dateFormat.parse(dateStr);
return dateResult;
} else {
return null;
}
} catch (ParseException ex) {
return null;
}
}
public static Date getDateTH(Date theDate) {
try {
if (theDate != null) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", new Locale("TH", "TH"));
String dateStr = dateFormat.format(theDate);
Date dateResult = dateFormat.parse(dateStr);
return dateResult;
} else {
return null;
}
} catch (ParseException ex) {
return null;
}
}
/**
* Convert from java.lang.String to java.util.Calendar.
*
* @param theDateStr java.util.Date
* @return java.util.Calendar
*/
public static Calendar getCalendar(String theDateStr) {
try {
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_TH);
Calendar cal = Calendar.getInstance();
cal.setTime(dateFormat.parse(theDateStr));
return cal;
} catch (ParseException ex) {
return null;
}
}
/**
* Convert from java.lang.String to java.util.Calendar.
*
* @param sourceDate java.util.Date
* @return java.util.Calendar
*/
public static Calendar getCalendar(Object sourceDate) {
try {
// SimpleDateFormat dateFormat = new
// SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_TH);
if (sourceDate != null) {
Calendar cal = Calendar.getInstance();
if (sourceDate instanceof java.sql.Date) {
cal.setTime((java.sql.Date) sourceDate);
} else if (sourceDate instanceof Date) {
cal.setTime((Date) sourceDate);
} else if (sourceDate instanceof Timestamp) {
cal.setTime((Timestamp) sourceDate);
} else if (sourceDate instanceof Calendar) {
cal = (Calendar) sourceDate;
}
return cal;
} else {
return null;
}
} catch (Exception ex) {
return null;
}
}
public static GregorianCalendar getGregorianCalendar(Object sourceDate) {
try {
// SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy",
// new Locale("TH", "TH"));
if (sourceDate != null) {
GregorianCalendar cal = new GregorianCalendar(new Locale("TH", "TH"));
if (sourceDate instanceof java.sql.Date) {
cal.setTime((java.sql.Date) sourceDate);
} else if (sourceDate instanceof Date) {
cal.setTime((Date) sourceDate);
} else if (sourceDate instanceof Timestamp) {
cal.setTime((Timestamp) sourceDate);
} else if (sourceDate instanceof Calendar) {
cal.setTimeInMillis(((Calendar) sourceDate).getTimeInMillis());
}
return cal;
} else {
return null;
}
} catch (Exception ex) {
return null;
}
}
public static Date getDate(Object sourceDate) {
try {
return getCalendar(sourceDate) == null ? null : getCalendar(sourceDate).getTime();
} catch (Exception ex) {
return null;
}
}
/**
* Convert from java.lang.String to java.util.Date.
*
* @param theDateStr java.util.Date
* @return java.lang.String
*/
public static Date getDate(String theDateStr, Locale local, String format) {
try {
if (theDateStr != null && !"".equals(theDateStr)) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format, local);
return dateFormat.parse(theDateStr);
} else {
return null;
}
} catch (ParseException ex) {
return null;
}
}
public static Date addDate(Date theDate, boolean add, int amount) throws Exception {
if (theDate == null) {
throw new Exception("theDate is null");
}
GregorianCalendar calendar = new GregorianCalendar(LOCALE_TH);
calendar.setTime(theDate);
if (add) {
calendar.add(GregorianCalendar.DATE, amount);
} else {
calendar.add(GregorianCalendar.DATE, (-1) * amount);
}
return calendar.getTime();
}
public static Date addYear(Date theDate, boolean add, int amount) throws Exception {
if (theDate == null) {
throw new Exception("theDate is null");
}
GregorianCalendar calendar = new GregorianCalendar(LOCALE_TH);
calendar.setTime(theDate);
if (add) {
calendar.add(GregorianCalendar.YEAR, amount);
} else {
calendar.add(GregorianCalendar.YEAR, (-1) * amount);
}
return calendar.getTime();
}
public static Date addMonth(Date theDate, boolean add, int amount) throws Exception {
if (theDate == null) {
throw new Exception("theDate is null");
}
GregorianCalendar calendar = new GregorianCalendar(LOCALE_TH);
calendar.setTime(theDate);
if (add) {
calendar.add(GregorianCalendar.MONTH, amount);
} else {
calendar.add(GregorianCalendar.MONTH, (-1) * amount);
}
return calendar.getTime();
}
public static Date addDays(Date date, int days) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, days); // minus number would decrement the days
return cal.getTime();
}
public static int diffDate(Date d1, Date d2) throws Exception {
int diffDate = 0;
long diffLong = 0;
if (d1 != null && d2 != null) {
GregorianCalendar x1 = new GregorianCalendar(LOCALE_TH);
x1.setTime(d1);
GregorianCalendar x2 = new GregorianCalendar(LOCALE_TH);
x2.setTime(d2);
long dLong1 = x1.getTime().getTime();// x1.UTC(x1.get(x1.YEAR),x1.get(x1.MONTH),x1.get(x1.DATE),x1.get(x1.HOUR_OF_DAY),x1.get(x1.MINUTE),x1.get(x1.SECOND));
long dLong2 = x2.getTime().getTime();// x2.UTC(x2.get(x1.YEAR),x2.get(x1.MONTH),x2.get(x1.DATE),x2.get(x1.HOUR_OF_DAY),x2.get(x1.MINUTE),x2.get(x1.SECOND));
if (dLong1 > dLong2) {
diffLong = dLong1 - dLong2;
} else {
diffLong = dLong2 - dLong1;
}
diffLong = diffLong / ONEDAY;
diffDate = (int) diffLong;
} else {
throw new Exception("D1 or D2 is null");
}
return diffDate;
}
public static int diffDateSpecial(Date d1, Date d2) throws Exception {
int diffDate = 0;
long diffLong = 0;
if (d1 != null && d2 != null) {
GregorianCalendar x1 = new GregorianCalendar(LOCALE_TH);
x1.setTime(d1);
GregorianCalendar x2 = new GregorianCalendar(LOCALE_TH);
x2.setTime(d2);
long dLong1 = x1.getTime().getTime();// x1.UTC(x1.get(x1.YEAR),x1.get(x1.MONTH),x1.get(x1.DATE),x1.get(x1.HOUR_OF_DAY),x1.get(x1.MINUTE),x1.get(x1.SECOND));
long dLong2 = x2.getTime().getTime();// x2.UTC(x2.get(x1.YEAR),x2.get(x1.MONTH),x2.get(x1.DATE),x2.get(x1.HOUR_OF_DAY),x2.get(x1.MINUTE),x2.get(x1.SECOND));
//
// if (dLong1 > dLong2) {
// diffLong = dLong1 - dLong2;
// } else {
diffLong = dLong2 - dLong1;
// }
diffLong = diffLong / ONEDAY;
diffDate = (int) diffLong;
} else {
throw new Exception("D1 or D2 is null");
}
return diffDate;
}
public static int getYear(Date d) {
GregorianCalendar temp = new GregorianCalendar(LOCALE_TH);
temp.setTime(d);
return temp.get(GregorianCalendar.YEAR);
}
public static int getYearEn(Date d) {
GregorianCalendar temp = new GregorianCalendar(LOCALE_US);
temp.setTime(d);
return temp.get(GregorianCalendar.YEAR);
}
/**
* Insert the method's description here.
*
* @param d java.util.Date
* @return int
*/
public static int getMonth(Date d) {
GregorianCalendar temp = new GregorianCalendar(LOCALE_TH);
temp.setTime(d);
int v_month = temp.get(GregorianCalendar.MONTH) + 1;
return v_month;
}
public static int getDayInMonth(Date d) {
GregorianCalendar temp = new GregorianCalendar(LOCALE_TH);
temp.setTime(d);
int v_date = temp.get(GregorianCalendar.DAY_OF_MONTH);
return v_date;
}
public static java.sql.Date getYesterday(java.sql.Date theDate) {
return diffTomorrowYesterday(theDate, true);
}
public static java.sql.Date getTomorrow(java.sql.Date theDate) {
return diffTomorrowYesterday(theDate, false);
}
private static java.sql.Date diffTomorrowYesterday(java.sql.Date theDate, boolean theYesterday) {
java.sql.Date w_tmpDate = null;
if (theYesterday) {
w_tmpDate = new java.sql.Date(theDate.getTime() - w_oneDay);
} else {
w_tmpDate = new java.sql.Date(theDate.getTime() + w_oneDay);
}
return w_tmpDate;
}
public static Date getCurrentDate() {
return new GregorianCalendar(LOCALE_TH).getTime();
}
public static Date getCurrentDate(Locale locale) {
return new GregorianCalendar(locale).getTime();
}
/**
* @param days number of days
* @return previously date revers {days}
*/
public static Date getPrevious(int days) {
GregorianCalendar cale = new GregorianCalendar(LOCALE_TH);
cale.add(Calendar.DATE, -days);
return cale.getTime();
}
public static Date getPreviousDate(int days) {
GregorianCalendar cale = new GregorianCalendar(LOCALE_TH);
cale.add(Calendar.DATE, -days);
return cale.getTime();
}
public static Timestamp getCurrentDateTime() {
return new Timestamp(new GregorianCalendar(LOCALE_TH).getTime().getTime());
}
public static Calendar getCurrentCalendar() {
return new GregorianCalendar(LOCALE_TH);
}
public static int getCurrentYearTh() {
Date date = new Date();
return new Integer(yearThFormated.format(date));
}
public static int getCurrentYearEn() {
Date date = new Date();
return new Integer(yearEnFormated.format(date));
}
public static int getCurrentMonthEn() {
Date date = new Date();
return new Integer(monthEnFormated.format(date));
}
public static List getListAllYear(int currentYear) {
int beforCurYear = 0;
int afterCurYear = 0;
List listYear = new ArrayList();
try {
if (currentYear > 0) {
beforCurYear = currentYear - 5;
afterCurYear = currentYear + 10;
for (int i = beforCurYear; i <= afterCurYear; i++) {
listYear.add(i);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return listYear;
}
public static int dateDiffInHours(Date toDate, Date fromDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(toDate);
long ms = cal.getTimeInMillis();
cal.setTime(fromDate);
ms -= cal.getTimeInMillis();
final long msPerHour = 1000L * 60L * 60L;
int hours = (int) (ms / msPerHour);
return hours;
}
public static int dateDiffInMinute(Date toDate, Date fromDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(toDate);
long ms = cal.getTimeInMillis();
cal.setTime(fromDate);
ms -= cal.getTimeInMillis();
final long msPerHour = 1000L * 60L;
int hours = (int) (ms / msPerHour);
return hours;
}
public static int dateDiffInSecond(Date toDate, Date fromDate) {
if (toDate == null || fromDate == null) return 0;
Calendar cal = Calendar.getInstance();
cal.setTime(toDate);
long ms = cal.getTimeInMillis();
cal.setTime(fromDate);
ms -= cal.getTimeInMillis();
final long msPerSecond = 1000L;
int hours = (int) (ms / msPerSecond);
return hours;
}
//
// public static Date convertToBE(Date theDate){
// String w_strDate = null;
// int w_year_input = 0;
// try{
// if(theDate != null){
// w_strDate = StringFormat.getLocaleDateNoTime(theDate);
// w_year_input = NumberFormat.getInt(w_strDate.substring(6));
// if(w_year_input!=0){
// w_strDate =
// w_strDate.substring(0,6)+StringFormat.getString((w_year_input-543));
// theDate = getDate(w_strDate);
// }
// }
//
// }catch(Exception e){
// e.getMessage();
// }
// return theDate;
// }
// public static Date convertToAD(Date theDate){
// String w_strDate = null;
// int w_year_input = 0;
// try{
// if(theDate != null){
// w_strDate = StringFormat.getLocaleDateNoTime(theDate);
// w_year_input = NumberFormat.getInt(w_strDate.substring(6));
// if(w_year_input!=0){
// w_strDate =
// w_strDate.substring(0,6)+StringFormat.getString((w_year_input+543));
// theDate = getDate(w_strDate);
// }
// }
//
// }catch(Exception e){
// e.getMessage();
// }
// return theDate;
// }
public static String converUtilDateToSqlDate(Date utilDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String sqlDate = sdf.format(utilDate);
return sqlDate;
}
public static long diffMinuteCalculate(Date startDate, Date endDate) throws Exception {
long endL = endDate.getTime();
long startL = startDate.getTime();
return ((endL - startL) / 1000 / 60) % 60;
}
public static long diffHoursCalculate(Date startDate, Date endDate) throws Exception {
long endL = endDate.getTime();
long startL = startDate.getTime();
return ((endL - startL) / 1000L / 60L / 60L) % 24;
}
@SuppressWarnings("deprecation")
public static long diffMinuteCalculateDate(Date startDate, Date endDate) throws Exception {
long endL = endDate.getDate();
long startL = startDate.getDate();
return endL - startL;
}
/**
* @param a
* @throws Exception
*/
public static void main(String[] a) throws Exception {
// System.out.println(">>>> "+getListAllYear(0));
// SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", enLocale);
// Date startDate = format.parse("20131109");
// Date endDate = format.parse("20140110");
System.out.println("xxx");
System.out.println(getStrDateByFormat(new Date(), "ddMMyyyy"));
// String x = totalDayTime("28/12/2013 00:00", "31/12/2013 00:00");
// Date d = convertStringToDate("20131109", DEFAULT_XML_DATE_FORMATED);
// System.out.print(StringFormat.getDateString(d, enLocale,
// DEFAULT_DATE_FORMATED));
// if("20131109" == null) return null;
// SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd", enLocale);
// Date rtnDate = format.parse("20131109");
// System.out.print(rtnDate);
// Date startDate = dateFormat.parse("29/12/2013 14:59");
// Date endDate = dateFormat.parse("31/12/2013 18:15");
// Double duration = totalMinTime("20/12/2013 08:00",
// "21/12/2013 10:30");
// System.out.println(duration);
// System.out.println(duration/60);
// System.out.println((duration/60)/24);
// System.out.println((duration/60)%24);
// System.out.println(duration%60);
// System.out.println(duration+duration%60);
System.out.println("==================");
// long durationHour = totalHourTime("20/12/2013 08:00",
// "20/12/2013 10:35");
// System.out.println(durationHour);
// long diffDay = duration/24;
// System.out.println(diffDay);
// long diffHour = duration%24;
// System.out.println(diffHour);
// System.out.println(startDate);
// System.out.println(endDate);
// long day = diffMinuteCalculateDate(startDate, endDate);
// System.out.println(day);
// long hour = diffHoursCalculate(startDate, endDate);
// System.out.println(hour);
// long min = diffMinuteCalculate(startDate, endDate);
// System.out.println(min);
//
// System.out.println((day*24)+hour+(min%60));
// compareToDateWithoutTime(new Date(), getCurrentBudgetDate());
// XMLGregorianCalendar xmlcal = new XMLGregorianCalendar();
// Date d = xmlcal.toGregorianCalendar().getTime();
// Date dt = new Date();
// System.out.println(dt);
// System.out.print(diffMinuteCalculateDate(getPreviousDate(6),
// getCurrentDate()));
//
// Interval interval1 = new Interval(c1.getTimeInMillis(),
// c2.getTimeInMillis());
// Interval interval2 = new Interval(c3.getTimeInMillis(),
// c4.getTimeInMillis());
// Interval interval3 = new Interval(c5.getTimeInMillis(),
// c6.getTimeInMillis());
// Interval interval4 = new Interval(c7.getTimeInMillis(),
// c8.getTimeInMillis());
//
// List listIntervals = new ArrayList();
// listIntervals.add(interval3);
// listIntervals.add(interval2);
// listIntervals.add(interval1);
// listIntervals.add(interval4);
//
//
// if (listIntervals != null && !listIntervals.isEmpty()) {
//
// List tmpListIntervals = new ArrayList();
//
// for (Interval interval : listIntervals) {
//
// if (tmpListIntervals != null && !tmpListIntervals.isEmpty()) {
//
// boolean isOverLap = false;
//
// for (Interval tmpInterval : tmpListIntervals) {
//
// isOverLap = tmpInterval.overlaps(interval);
//
// if (isOverLap) {
// System.out.println("isOverlap : " + interval.getEnd() + " " +
// interval.getEnd());
// break;
// }
// }
//
// if (isOverLap) {
// break;
//
// } else {
// tmpListIntervals.add(interval);
// }
//
// } else {
// tmpListIntervals.add(interval);
// }
// }
// }
// SimpleDateFormat dateFormat2 = new
// SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_TH);
// System.out.println(dateFormat2.format(getCurrentBudgetDate()));
// System.out.println(dateFormat2.format(getCurrentFinishBudgetDate()));
// create original ArrayList object
// List aListOriginal = new
// ArrayList();
// TrainReqExpInfoBO t1 = new TrainReqExpInfoBO();
// ExpensesBO ex1 = new ExpensesBO();
// ex1.setAmount(100.0);
// t1.setExpenses(ex1);
// aListOriginal.add(t1);
//
// TrainReqExpInfoBO cloneT1 =
// (TrainReqExpInfoBO)SerializationUtils.clone(t1);
// cloneT1.getExpenses().setAmount(50.0);
// //to clone ArrayList use clone method
// ArrayList aListCloned = new
// ArrayList();
// aListCloned = (ArrayList)aListOriginal.clone();
// Change the object in original ArrayList
// System.out.println("Original ArrayList " +
// t1.getExpenses().getAmount());
// System.out.println("Cloned ArrayList " +
// cloneT1.getExpenses().getAmount());
// // List listData = new ArrayList();
// SimpleDateFormat dateFormat = new
// SimpleDateFormat(DEFAULT_DATE_FORMATED, LOCALE_TH);
// Date startDate = dateFormat.parse("09/06/2557");
//
// Date resultDate = addDate(startDate, false, 1);
// System.out.println(resultDate);
// // listData.add(startDate);
// startDate = dateFormat.parse("20/12/2556");
// listData.add(startDate);
// startDate = dateFormat.parse("21/12/2556");
// listData.add(startDate);
// startDate = dateFormat.parse("25/12/2556");
// listData.add(startDate);
// startDate = dateFormat.parse("23/12/2556");
// listData.add(startDate);
// System.out.println(listData.size());
// HashSet hs = new HashSet();
// hs.addAll(listData);
// listData.clear();
// listData.addAll(hs);
//
// Collections.sort(listData);
// for(Date d:listData){
// System.out.println(GESSDateUtil.toStringThaiDateTime(d,
// GESSDateUtil.DEFAULT_DATE_FORMATED));
// }
// System.out.println(listData.size());
}
/*
* String Thai Date Format with pattern dd/MM/yyyy hh:mm:ss
*/
public static String toStringThaiDateTimeSimpleFormat(Date date) throws Exception {
String dateStr = null;
SimpleDateFormat thFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, thLocale);
if (date != null) {
dateStr = thFormat.format(date);
}
return dateStr;
}
/*
* String Eng Date Format with pattern dd/MM/yyyy
*/
public static String toStringEngDateSimpleFormat(Date date) throws Exception {
String dateStr = null;
SimpleDateFormat engFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, enLocale);
if (date != null) {
dateStr = engFormat.format(date);
}
return dateStr;
}
public static String toStringEngDateSearchFormat(Date date) throws Exception {
SimpleDateFormat engFormat = new SimpleDateFormat(DEFAULT_DATE_SEARCH_FORMATED, enLocale);
return engFormat.format(date);
}
public static String toStringEngDateSearchBPMFormat(Date date) throws Exception {
SimpleDateFormat engFormat = new SimpleDateFormat(DEFAULT_DATE_SEARCH_BPM_FORMATED, enLocale);
return engFormat.format(date);
}
public static String toStringThaiDateTime(Date date, String format) {
String dateStr = null;
if (date != null && format != null && !format.equals("")) {
try {
SimpleDateFormat thFormat = new SimpleDateFormat(format, thLocale);
dateStr = thFormat.format(date);
} catch (Exception e) {
e.printStackTrace();
}
}
return dateStr;
}
public static String toStringEngDateTime(Date date, String format) {
String dateStr = null;
if (date != null && format != null && !format.equals("")) {
try {
SimpleDateFormat thFormat = new SimpleDateFormat(format, enLocale);
dateStr = thFormat.format(date);
} catch (Exception e) {
e.printStackTrace();
}
}
return dateStr;
}
public static String toStringTodayDateTime(Date date, String format) {
String dateStr = null;
if (date != null && format != null && !format.equals("")) {
try {
if (diffDate(date, new Date()) == 0) {
SimpleDateFormat thFormat = new SimpleDateFormat(DEFAULT_MINUTE_TIME_FORMATED, enLocale);
dateStr = "Today " + thFormat.format(date);
} else {
SimpleDateFormat thFormat = new SimpleDateFormat(format, enLocale);
dateStr = thFormat.format(date);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return dateStr;
}
public static String toStringDateTime(Date date, String format, Locale locale) {
String dateStr = "";
if (date != null && format != null && !format.equals("")) {
try {
SimpleDateFormat thFormat = new SimpleDateFormat(format, locale);
dateStr = thFormat.format(date);
} catch (Exception e) {
e.printStackTrace();
}
}
return dateStr;
}
public static String toStringEngTimestampSearchGessFormat(Date date) throws Exception {
SimpleDateFormat engFormat = new SimpleDateFormat(DEFAULT_FULL_DATE_TIME_FORMATED, enLocale);
return engFormat.format(date);
}
public static String toStringThaiTimestampSearchGessFormat(Date date) throws Exception {
SimpleDateFormat engFormat = new SimpleDateFormat(DEFAULT_FULL_DATE_TIME_FORMATED, thLocale);
return engFormat.format(date);
}
// FUNCTION CONVERSE FROM FORMAT "ENG Local" TO FORMAT "THAI Local"
public static String converseLocalDateText(String dateLeadStr) {
// Supot edit 2005-10-21
String returnDate = null;
DateFormat formatter1 = new SimpleDateFormat(DEFAULT_FULL_DATE_TIME_FORMATED, enLocale);
DateFormat formatter2 = new SimpleDateFormat(DEFAULT_FULL_DATE_TIME_FORMATED, thLocale);
if (dateLeadStr != null && !dateLeadStr.equals("")) {
try {
Date dateParse = formatter1.parse(dateLeadStr);
returnDate = formatter2.format(dateParse);
} catch (ParseException e) {
e.printStackTrace();
}
}
return returnDate;
}
// FUNCTION CONVERSE FROM FORMAT "DD/MM/YYYY ENG Local" TO FORMAT
// "THAI Local"
public static String converseLocalDateToTimeText(String dateLeadStr) {
// Supot edit 2005-10-21
String returnDate = null;
DateFormat formatter1 = new SimpleDateFormat(DEFAULT_DATE_FORMATED, enLocale);
DateFormat formatter2 = new SimpleDateFormat(DEFAULT_DATE_FORMATED, thLocale);
if (dateLeadStr != null && !dateLeadStr.equals("")) {
try {
Date dateParse = formatter1.parse(dateLeadStr);
returnDate = formatter2.format(dateParse);
} catch (ParseException e) {
e.printStackTrace();
}
}
return returnDate;
}
public static int daysBetween(Date d1, Date d2) {
final long ONE_HOUR = 60 * 60 * 1000L;
return (int) ((d2.getTime() - d1.getTime() + ONE_HOUR) / (ONE_HOUR * 24));
}
public static String getDay(int day) {
String dayStr = "";
switch (day) {
case 1:
dayStr = "SUNDAY";
break;
case 2:
dayStr = "MONDAY";
break;
case 3:
dayStr = "TUESDAY";
break;
case 4:
dayStr = "WEDNESDAY";
break;
case 5:
dayStr = "THURSDAY";
break;
case 6:
dayStr = "FRIDAY";
break;
case 7:
dayStr = "SATURDAY";
break;
default:
dayStr = "";
break;
}
return dayStr;
}
public static String getDayLocale(int day, String locale) {
String dayStr = "";
if (locale.equals("en")) {
switch (day) {
case 1:
dayStr = "SUNDAY";
break;
case 2:
dayStr = "MONDAY";
break;
case 3:
dayStr = "TUESDAY";
break;
case 4:
dayStr = "WEDNESDAY";
break;
case 5:
dayStr = "THURSDAY";
break;
case 6:
dayStr = "FRIDAY";
break;
case 7:
dayStr = "SATURDAY";
break;
default:
dayStr = "";
break;
}
} else {
switch (day) {
case 1:
dayStr = "อาทิตย์";
break;
case 2:
dayStr = "จันทร์";
break;
case 3:
dayStr = "อังคาร";
break;
case 4:
dayStr = "พุธ";
break;
case 5:
dayStr = "พฤหัส";
break;
case 6:
dayStr = "ศุกร์";
break;
case 7:
dayStr = "เสาร์";
break;
default:
dayStr = "";
break;
}
}
return dayStr;
}
public static boolean isDateBetween(Date fromDate, Date toDate, Date checkDate) {
boolean result = false;
if (checkDate != null && fromDate != null && toDate != null) {
if (checkDate.compareTo(fromDate) >= 0 && checkDate.compareTo(toDate) <= 0) {
result = true;
}
}
return result;
}
public static Date getStartOfDay(Date date) {
GregorianCalendar calendar = new GregorianCalendar(LOCALE_US);
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DATE);
calendar.set(year, month, day, 0, 0, 0);
return calendar.getTime();
}
public static Date getEndOfDay(Date date) {
GregorianCalendar calendar = new GregorianCalendar(LOCALE_US);
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DATE);
calendar.set(year, month, day, 23, 59, 59);
return calendar.getTime();
}
public static Date convertCalendarToDate(Calendar calendar) throws Exception {
Date rtnDate = null;
if (calendar != null) {
long timeInMillis = calendar.getTimeInMillis();
if (timeInMillis > 0) {
rtnDate = new Date(timeInMillis);
}
}
return rtnDate;
}
public static Timestamp convertCalendarToTimestamp(Calendar calendar) throws Exception {
Timestamp timestamp = null;
if (calendar != null) {
long timeInMillis = calendar.getTimeInMillis();
if (timeInMillis > 0) {
timestamp = new Timestamp(timeInMillis);
}
}
return timestamp;
}
public static XMLGregorianCalendar convertDateToXMLGregorianCalendar(Date date) throws DatatypeConfigurationException {
GregorianCalendar gCalendar = new GregorianCalendar();
gCalendar.setTime(date);
return DatatypeFactory.newInstance().newXMLGregorianCalendar(gCalendar);
}
/*
* Converts XMLGregorianCalendar to java.util.Date in Java
*/
public static Date convertXMLGregorianCalendarToDate(XMLGregorianCalendar calendar) {
if (calendar == null) {
return null;
}
return calendar.toGregorianCalendar().getTime();
}
public static Timestamp convertStringToTimestamp(String stringDate) throws Exception {
Timestamp timestamp = null;
if (stringDate != null && !"".equals(stringDate)) {
SimpleDateFormat format = new SimpleDateFormat();
format.setCalendar(new GregorianCalendar(enLocale));
format.applyPattern(DEFAULT_FULL_DATE_TIME_FORMATED);
Date date = format.parse(stringDate);
if (date != null) {
timestamp = new Timestamp(date.getTime());
}
}
return timestamp;
}
public static Timestamp convertStringToTimestamp(String stringDate, String pattern, Locale locale) throws Exception {
Timestamp timestamp = null;
if (stringDate != null && !"".equals(stringDate)) {
SimpleDateFormat format = new SimpleDateFormat();
format.setCalendar(new GregorianCalendar(locale));
format.applyPattern(pattern);
Date date = format.parse(stringDate);
if (date != null) {
timestamp = new Timestamp(date.getTime());
}
}
return timestamp;
}
public static Timestamp getTimeStamp(Date date) {
Timestamp timestamp = null;
if (date != null) {
timestamp = new Timestamp(date.getTime());
}
return timestamp;
}
public static boolean validateMonthYear(String fromMonth, String fromYear, String toMonth, String toYear) {
if (fromMonth != null && fromYear != null && toMonth != null && toYear != null) {
Date from = DateUtility.getDateEn("1/" + fromMonth + "/" + fromYear);
Date to = DateUtility.getDateEn("1/" + toMonth + "/" + toYear);
System.out.println("from = " + from + ", to = " + to);
if (from.compareTo(to) < 0) {
return true;
} else if (from.compareTo(to) != 0) {
return false;
}
}
return false;
}
@SuppressWarnings("deprecation")
public static Date convertStringToDate(String stringDate) throws ParseException {
Date date = null;
if (stringDate != null && !"".equals(stringDate)) {
SimpleDateFormat format = new SimpleDateFormat();
format.setCalendar(new GregorianCalendar(enLocale));
format.applyPattern(DEFAULT_DATE_FORMATED);
date = format.parse(stringDate);
if (date != null) {
int year = date.getYear();
if (year > 500) {
year = year - 543;
date.setYear(year);
}
}
}
return date;
}
@SuppressWarnings("deprecation")
public static Date convertStringToDate2(String stringDate) throws ParseException {
Date date = null;
if (stringDate != null && !"".equals(stringDate)) {
SimpleDateFormat format = new SimpleDateFormat();
format.setCalendar(new GregorianCalendar(enLocale));
format.applyPattern(DEFAULT_DATE_SEARCH_BPM_FORMATED);
date = format.parse(stringDate);
if (date != null) {
int year = date.getYear();
if (year > 500) {
year = year - 543;
date.setYear(year);
}
}
}
return date;
}
@SuppressWarnings("deprecation")
public static Date convertStringToDate(String stringDate, String pattern) throws ParseException {
Date date = null;
if (stringDate != null && !"".equals(stringDate)) {
SimpleDateFormat format = new SimpleDateFormat();
format.setCalendar(new GregorianCalendar(enLocale));
format.applyPattern(pattern);
date = format.parse(stringDate);
if (date != null) {
int year = date.getYear();
if (year > 500) {
year = year - 543;
date.setYear(year);
}
}
}
return date;
}
public static int diffDateBetween(Date startDate, Date endDate) {
int difInDays = (int) ((endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60L * 24));
return difInDays;
}
public static int diffDateNotTime(Date startDate, Date endDate) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED);
Date dst = getFormatDate(dateFormat.format(startDate));
Date dsp = getFormatDate(dateFormat.format(endDate));
int difInDays = (int) ((dsp.getTime() - dst.getTime()) / (1000 * 60L * 60 * 24));
return difInDays;
}
public static Date dateToDate(Date dd) {
String d1 = getStrDate(dd);
return getFormatDate(d1);
}
public static String getStrDate(Date d) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED, thLocale);
String dd = dateFormat.format(new Date());
try {
dd = dateFormat.format(d);
} catch (Exception e) {
dd = "";
}
return dd;
}
public static Date getFormatDate(String dateStr) {
Date date = null;
SimpleDateFormat dateFormat = new SimpleDateFormat(DEFAULT_DATE_FORMATED);
try {
date = dateFormat.parse(dateStr);
} catch (Exception e) {
date = null;
}
return date;
}
public static Double getActualMaximumDateForMonth(Date dt) throws Exception {
Integer result = 0;
if (dt != null) {
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
result = cal.getActualMaximum(Calendar.DATE);
}
return Double.valueOf(result);
}
public static String getStrDateByFormat(Date d, String format) {
SimpleDateFormat dateFormat = new SimpleDateFormat(format, enLocale);
String dd = dateFormat.format(new Date());
try {
dd = dateFormat.format(d);
} catch (Exception e) {
dd = "";
}
return dd;
}
public static String getMonthFullNameThaiByMounthNo(int monthNo) {
int mountNumber = monthNo - 1;
// int mountNumber = monthNo;
String monthShortNameThai = "";
// 1
if (Calendar.JANUARY == mountNumber) {
monthShortNameThai = "\u0E21\u0E01\u0E23\u0E32\u0E04\u0E21";
// 2
} else if (Calendar.FEBRUARY == mountNumber) {
monthShortNameThai = "\u0E01\u0E38\u0E21\u0E20\u0E32\u0E1E\u0E31\u0E19\u0E18\u0E4C";
// 3
} else if (Calendar.MARCH == mountNumber) {
monthShortNameThai = "\u0E21\u0E35\u0E19\u0E32\u0E04\u0E21";
// 4
} else if (Calendar.APRIL == mountNumber) {
monthShortNameThai = "\u0E40\u0E21\u0E29\u0E32\u0E22\u0E19";
// 5
} else if (Calendar.MAY == mountNumber) {
monthShortNameThai = "\u0E1E\u0E24\u0E29\u0E20\u0E32\u0E04\u0E21";
// 6
} else if (Calendar.JUNE == mountNumber) {
monthShortNameThai = "\u0E21\u0E34\u0E16\u0E38\u0E19\u0E32\u0E22\u0E19";
// 7
} else if (Calendar.JULY == mountNumber) {
monthShortNameThai = "\u0E01\u0E23\u0E01\u0E0E\u0E32\u0E04\u0E21";
// 8
} else if (Calendar.AUGUST == mountNumber) {
monthShortNameThai = "\u0E2A\u0E34\u0E07\u0E2B\u0E32\u0E04\u0E21";
// 9
} else if (Calendar.SEPTEMBER == mountNumber) {
monthShortNameThai = "\u0E01\u0E31\u0E19\u0E22\u0E32\u0E22\u0E19";
// 10
} else if (Calendar.OCTOBER == mountNumber) {
monthShortNameThai = "\u0E15\u0E38\u0E25\u0E32\u0E04\u0E21";
// 11
} else if (Calendar.NOVEMBER == mountNumber) {
monthShortNameThai = "\u0E1E\u0E24\u0E28\u0E08\u0E34\u0E01\u0E32\u0E22\u0E19";
// 12
} else if (Calendar.DECEMBER == mountNumber) {
monthShortNameThai = "\u0E18\u0E31\u0E19\u0E27\u0E32\u0E04\u0E21";
}
return monthShortNameThai;
}
@SuppressWarnings("unused")
private static Calendar getPeriodStartDate(Calendar cal) {
cal.set(Calendar.DATE, cal.getActualMinimum(Calendar.DATE));
return cal;
}
@SuppressWarnings("unused")
private static Calendar getPeriodEndDate(Calendar cal, int scalar) {
while (scalar-- > 0) {
cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE));
if (scalar > 0) {
cal.add(Calendar.DATE, 1);
}
}
return cal;
}
public static List getDate(String start_date, String end_date) throws Exception {
List dates = new ArrayList();
// String str_date ="27/08/2010";
// String end_date ="02/09/2010";
DateFormat formatter;
formatter = new SimpleDateFormat("dd/MM/yyyy");
Date startDate = (Date) formatter.parse(start_date);
Date endDate = (Date) formatter.parse(end_date);
long interval = 24 * 1000 * 60 * 60; // 1 hour in millis
long endTime = endDate.getTime(); // create your endtime here, possibly
// using Calendar or Date
long curTime = startDate.getTime();
while (curTime <= endTime) {
dates.add(new Date(curTime));
curTime += interval;
}
for (int i = 0; i < dates.size(); i++) {
Date lDate = (Date) dates.get(i);
String ds = formatter.format(lDate);
}
return dates;
}
public static List getDatesBetweenDates(String start_date, String end_date) throws Exception {
List dates = new ArrayList();
// String str_date ="27/08/2010";
// String end_date ="02/09/2010";
DateFormat formatter;
formatter = new SimpleDateFormat("dd/MM/yyyy");
Date startDate = (Date) formatter.parse(start_date);
Date endDate = (Date) formatter.parse(end_date);
long interval = 24 * 1000 * 60 * 60; // 1 hour in millis
long endTime = endDate.getTime(); // create your endtime here, possibly
// using Calendar or Date
long curTime = startDate.getTime();
while (curTime <= endTime) {
dates.add(new Date(curTime));
curTime += interval;
}
for (int i = 0; i < dates.size(); i++) {
Date lDate = (Date) dates.get(i);
String ds = formatter.format(lDate);
}
return dates;
}
public static Date add235959999(Date date) {
Date result = new Date();
Calendar dueDateCal = Calendar.getInstance();
dueDateCal.setTime(date);
dueDateCal.set(Calendar.HOUR_OF_DAY, 23);
dueDateCal.set(Calendar.MINUTE, 59);
dueDateCal.set(Calendar.SECOND, 59);
dueDateCal.set(Calendar.MILLISECOND, 999);
result = dueDateCal.getTime();
return result;
}
public static String getZeroNumber(int digi) throws Exception {
String result = "";
if (digi < 10 && digi > -1) {
result = "0" + digi;
} else {
result = String.valueOf(digi);
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy