package net.javaiq.examples.date;
import java.sql.Date;
import java.text.SimpleDateFormat;
@author
public class DateFormatter {
private static char separator = '/';
private static String[] validDateFormats =
new String[] { "DDMMYYYY", "MMDDYYYY", "YYYYMMDD", "YYYYDDMM", "MMYYYY", "YYYYMM", "MMMYYYY", "DD",
"MMDDYY", "DDMMYY", "YYMMDD" };
@param
@param
@param
@return
public static String format(Date date, String format, char dateSeparator) {
String formattedDate = null;
if (date != null) {
String allowed = " -./";
String dateSeparatorString = String.valueOf(separator);
if (allowed.indexOf(dateSeparator) >= 0) {
dateSeparatorString = String.valueOf(dateSeparator);
} else if (dateSeparator == '\u0000') {
dateSeparatorString = "";
}
if (format.trim().equalsIgnoreCase("DDMMYYYY")) {
formattedDate = formatDate(date, "dd" + dateSeparatorString + "MM" + dateSeparatorString + "yyyy");
} else if (format.trim().equalsIgnoreCase("MMDDYYYY")) {
formattedDate = formatDate(date, "MM" + dateSeparatorString + "dd" + dateSeparatorString + "yyyy");
} else if (format.trim().equalsIgnoreCase("YYYYDDMM")) {
formattedDate = formatDate(date, "yyyy" + dateSeparatorString + "dd" + dateSeparatorString + "MM");
} else if (format.trim().equalsIgnoreCase("YYYYMMDD")) {
formattedDate = formatDate(date, "yyyy" + dateSeparatorString + "MM" + dateSeparatorString + "dd");
} else if (format.trim().equalsIgnoreCase("MMYYYY")) {
formattedDate = formatDate(date, "MM" + dateSeparatorString + "yyyy");
} else if (format.trim().equalsIgnoreCase("YYYYMM")) {
formattedDate = formatDate(date, "yyyy" + dateSeparatorString + "MM");
} else if (format.trim().equalsIgnoreCase("DD")) {
formattedDate = formatDate(date, "dd");
} else if (format.trim().equalsIgnoreCase("MMMYYYY")) {
formattedDate = formatDate(date, "MMM" + dateSeparatorString + "yyyy");
} else if (format.trim().equalsIgnoreCase("DDMMYY")) {
formattedDate = formatDate(date, "dd" + dateSeparatorString + "MM" + dateSeparatorString + "yy");
} else if (format.trim().equalsIgnoreCase("MMDDYY")) {
formattedDate = formatDate(date, "MM" + dateSeparatorString + "dd" + dateSeparatorString + "yy");
} else if (format.trim().equalsIgnoreCase("YYMMDD")) {
formattedDate = formatDate(date, "yy" + dateSeparatorString + "MM" + dateSeparatorString + "dd");
}
}
return formattedDate;
}
@param
@param
@return
public static String format(Date date, String format) {
return format(date, format, separator);
}
@param
@param
@return
public static String format(Date date, String format, boolean separatorRequired) {
if (separatorRequired) {
return format(date, format);
} else {
return format(date, format, '\u0000');
}
}
@param
@param
@return
private static String formatDate(java.util.Date date, String format) {
SimpleDateFormat df = new SimpleDateFormat(format);
return df.format(date) + "";
}
@return
public static String[] getAvailableDateFormats() {
return validDateFormats;
}
@param
public static void main(String[] args) {
final java.sql.Date inputDate = new java.sql.Date(System.currentTimeMillis());
System.out.println("Input Date : " + inputDate);
String formattedDate = format(inputDate, "DDMMYYYY");
System.out.println("Formatted date : " + formattedDate);
formattedDate = format(inputDate, "DDMMYYYY", false);
System.out.println("Formatted date with no separator : " + formattedDate);
}
}