import java.sql.Timestamp;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* <DT><B></B>日期处理<DD>
* <DT><B>概要:</B>日期处理方法集<DD>
* <DT><B>说明:</B>日期串处理<DD>
*/
public class DateUtil {
/** 构造函数 */
public DateUtil() {
}
public static void main(String args[]) {
/*Date nullDate = null;
System.out.println("TODAY: " + DateUtil.showExpDate());
System.out.println("TODAY: " + DateUtil.formatShortDate(new Date()));
System.out.println("nullDAY: " + DateUtil.formatShortDate(nullDate));*/
}
public static Date getCurrentDate() {
return new Date();
}
/**
* 获取一天后对应的时间
* @param ts 输入时间
* @return ts 一天后时间
*/
public static Timestamp getNextTime(Timestamp ts) {
Timestamp newTs = new Timestamp(ts.getTime() + 86400000);
return newTs;
}
/**
* 获取某天后对应的时间
* @param ts 输入时间
* @param dayCount 天数
* @return ts 一天后时间
*/
public static Timestamp getNextTime(Timestamp ts, int dayCount) {
Timestamp newTs = new Timestamp(ts.getTime() + 86400000 * dayCount);
return newTs;
}
/** 说明: 日期转化为字符串(默认格式 yyyy-mm-dd hh24:mi:ss)
* @param dt 日期
* @return dateString 转化后的字符串
*/
public static String formatDate(Date dt) {
return formatDate(dt, "yyyy-MM-dd HH:mm:ss");
}
/**
* 说明: 日期转化为字符串(默认格式 yyyy-mm-dd hh24:mi)
* @param dt
* @return
*/
public static String formatDateToSendDate(Date dt) {
return formatDate(dt, "yyyy-MM-dd HH:mm");
}
/** 说明: 日期转化为字符串(默认格式 yyyy-mm-dd hh24:mi:ss)
* @param ts 日期
* @return dateString 转化后的字符串
*/
public static String formatDate(java.sql.Timestamp ts) {
String dateString = "";
if (ts != null) {
Date dt = new Date(ts.getTime());
dateString = formatDate(dt, "yyyy-MM-dd HH:mm:ss");
}
return dateString;
}
/** 说明: 日期转化为字符串(默认格式 yyyy-mm-dd)
* @param dt 日期
* @return dateString 转化后的字符串
*/
public static String formatShortDate(Date dt) {
String dateString;
if (dt == null) {
dateString = "";
} else {
dateString = formatDate(dt, "yyyy-MM-dd");
}
return dateString;
}
/** 说明: 日期转化为字符串(默认格式 yyyy-mm-dd)
* @param ts 日期
* @return dateString 转化后的字符串
*/
public static String formatShortDate(java.sql.Timestamp ts) {
String dateString;
Date dt = new Date(ts.getTime());
if (dt == null) {
dateString = "";
} else {
dateString = formatDate(dt, "yyyy-MM-dd");
}
return dateString;
}
/**
* 说明: 获取今天的时间,按 2001年1月10日 星期一格式
* @return showExpDay 今天对应的时间
*/
public static String showExpDate() {
Date dt = new Date();
String showExpDay;
int dayOfWeek;
showExpDay = formatDate(dt, "yyyy年MM月dd日 ");
Calendar rightNow = Calendar.getInstance();
dayOfWeek = rightNow.get(Calendar.DAY_OF_WEEK);
System.out.println(dayOfWeek);
showExpDay += getWeekName(dayOfWeek);
return showExpDay;
}
/**
* 说明: 获取当前月份的第一天,按 2001年1月10日格式
* @return showFirstDayOfMonth 今天对应的时间
*/
public static String showFirstDayOfMonth() {
java.sql.Date temp = new java.sql.Date(new Date().getTime());
String showFirstDayOfMonth;
showFirstDayOfMonth = formatDate(temp, "yyyy-MM-");
showFirstDayOfMonth += "01";
return showFirstDayOfMonth;
}
/**
* 说明: 获取当前月份的第31天,按 2001年1月10日格式
* @return showFirstDayOfMonth 今天对应的时间
*/
public static String showLastDayOfMonth() {
java.sql.Date temp = new java.sql.Date(new Date().getTime());
String showFirstDayOfMonth;
showFirstDayOfMonth = formatDate(temp, "yyyy-MM-");
showFirstDayOfMonth += "31";
return showFirstDayOfMonth;
}
/**
* 说明: 获取当前月份的第一天,按 2001年1月10日格式
* @return showFirstDayOfMonth 今天对应的时间
*/
public static String showCurrentDate() {
java.sql.Date temp = new java.sql.Date(new Date().getTime());
String showCurrentDate;
showCurrentDate = formatDate(temp, "yyyy-MM-dd");
return showCurrentDate;
}
/**
* 说明: 获取输入日期中的年
* @return showYear 年
*/
public static String showYear(Date dt) {
String showYear;
showYear = formatDate(dt, "yyyy");
return showYear;
}
/**
* 说明: 获取输入日期中的月
* @return showMonth 月
*/
public static String showMonth(Date dt) {
String showMonth;
showMonth = formatDate(dt, "MM");
return showMonth;
}
/**
* 说明: 获取输入日期中的天
* @return showDay 天
*/
public static String showDay(Date dt) {
String showDay;
showDay = formatDate(dt, "dd");
return showDay;
}
/**
* 说明: 获取输入日期中的小时
* @return showHour 小时(24)
*/
public static String showHour(Date dt) {
String showHour;
showHour = formatDate(dt, "HH");
return showHour;
}
/**
* 说明: 获取输入日期中的分钟
* @return showMinute 分钟
*/
public static String showMinute(Date dt) {
String showMinute;
showMinute = formatDate(dt, "mm");
return showMinute;
}
/** 说明: 日期转化为字符串
* @param dt 日期
* @param sf 日期格式化定义
* @return dateString 转化后的字符串
*/
public static String formatDate(Date dt, String sf) {
// Format the current time.
SimpleDateFormat sdf = new SimpleDateFormat(sf);
return sdf.format(dt);
}
/** 说明: 日期转化为字符串
* @param ts 日期
* @param sf 日期格式化定义
* @return dateString 转化后的字符串
*/
public static String formatDate(java.sql.Timestamp ts, String sf) {
String dateString = "";
if (ts != null) {
Date dt = new Date(ts.getTime());
// Format the current time.
SimpleDateFormat sdf = new SimpleDateFormat(sf);
dateString = sdf.format(dt);
}
return dateString;
}
/** 说明: 日期转化为SQL字符串(默认格式 yyyy-mm-dd hh24:mi:ss)
* @param dt 日期
* @return dateString 转化后的字符串
*/
public static String formatDateSQL(Date dt) {
String sqlString = formatDate(dt);
sqlString = " to_date('" + sqlString + "', 'yyyy-mm-dd hh24:mi:ss') ";
return sqlString;
}
/** 说明: 字符串转化为SQL字符串(默认格式 yyyy-mm-dd hh24:mi:ss)
* @param dtString 日期字符串
* @return dateString 转化后的SQL字符串
*/
public static String formatDateSQL(String dtString) {
String sqlString;
// 防止 2-29等日期溢出错误。
Date dt;
// 将提交的日期转化为JAVA日期
dt = DateUtil.parseString(dtString, "yyyy-MM-dd");
//将JAVA日期转化为提交的日期
dtString = DateUtil.formatDate(dt, "yyyy-MM-dd");
sqlString = " to_date('" + dtString + "', 'yyyy-mm-dd') ";
return sqlString;
}
/** 说明: 字符串转化为SQL字符串
* @param dtString 日期字符串
* @param sf 数据库日期格式
* @return dateString 转化后的SQL字符串
*/
public static String formatDateSQL(String dtString, String sf) {
String sqlString;
// 防止 2-29等日期溢出错误。
Date dt;
// 将提交的日期转化为JAVA日期
dt = DateUtil.parseString(dtString, "yyyy-MM-dd");
//将JAVA日期转化为提交的日期
dtString = DateUtil.formatDate(dt, "yyyy-MM-dd");
sqlString = " to_date('" + dtString + "', '" + sf + "') ";
return sqlString;
}
/** 说明: 字符串转换为日期 (默认格式 yyyy-MM-dd)
* @param dateString 日期格式字符串
* @return 转换后的日期
*/
public static Date parseString(String dateString) {
String sf = "yyyy-MM-dd";
Date dt = parseString(dateString, sf);
return dt;
}
/** 说明: 使类似于2002-02-30这样的非法日期合法化。
* @param dateString 日期格式字符串
* @return 转换后的日期格式字符串
*/
public static String secureString(String dateString) {
if (dateString == null || dateString.equals(""))
return "";
String sf = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(sf);
Date dt = parseString(dateString, sf);
return sdf.format(dt);
}
/** 说明: 使类似于2002-02-30这样的非法日期合法化。
* @param dateString 日期格式字符串
* @return 转换后的日期格式字符串
*/
public static String plusDays(String dateString, int toBePlus) {
if (dateString == null || dateString.equals(""))
return "";
String sf = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(sf);
Date dt = parseString(dateString, sf);
dt.setDate(dt.getDate() + toBePlus);
return sdf.format(dt);
}
/** 说明: 字符串转换为日期
* @param dateString 日期格式字符串
* @param sf 日期格式化定义
* @return 转换后的日期
*/
public static Date parseString(String dateString, String sf) {
// Parse the previous string back into a Date.
ParsePosition pos = new ParsePosition(0);
// Format the current time.
SimpleDateFormat sdf = new SimpleDateFormat(sf);
Date dt = sdf.parse(dateString, pos);
return dt;
}
/** 是否合法日期字符串 */
private static boolean isValidDate;
/** 说明: 是否合法日期
* @return 是否合法日期
*/
public static boolean isValidDate() {
return isValidDate;
}
/** 日期检查错误信息 */
private static String errorMsg;
/** 说明: 获取错误信息提示
* @return errorMsg 错误信息
*/
public static String getErrorMsg() {
return errorMsg;
}
/**
* 说明: 获取当前时间
* @return curTimestamp 当前时间
*/
public static Timestamp getCurTime() {
return new Timestamp(new java.util.Date().getTime());
}
/**
* 说明: 获取星期几名称
* @param weekNo 第几天
* @return weekName 中文星期几
*/
private static String getWeekName(int weekNo) {
String[] weekNames = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
String weekName = weekNames[weekNo - 1];
return weekName;
}
/**
* 返回新的日期类型
* date : 原始日期
* value : 须增加的值
* VAR : 修改日期类型 比如: 修改分钟 小时 天 星期 月 年
* 例如
* Calendar.DAY_OF_MONTH
* Calendar.DAY_OF_WEEK
* Calendar.DAY_OF_YEAR
* Calendar.HOUR_OF_DAY
* Calendar.MONDAY
* @param date
* @param value
* @param modify
* @return
*/
public static Date getNewDate(Date date, int value, int VAR) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int temp = cal.get(VAR);
cal.set(VAR, temp + value);
return cal.getTime();
}
/**
* Return timestamp from string
* Example : 2002-07-03 12:22:22
* create by chuanyun tian
* @param time
* @return
* @throws ParseException
*/
public static Timestamp stringToTimestamp(String time) throws java.text.ParseException {
java.text.SimpleDateFormat sdt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = sdt.parse(time);
java.util.Calendar cal = Calendar.getInstance();
cal.setTime(date);
return new Timestamp(cal.getTime().getTime());
}
/**
* If begindate is before of the todate, return true;
* otherwise return false
* chaunyun tian
* @param beginDate
* @param toDate
* @return
*/
public static boolean compDate(Date beginDate, Date toDate) {
if (beginDate.before(toDate))
return true;
return false;
}
/**
* If system time is before of the compareDate, return true;
* otherwise return false
* chaunyun tian
* @param compareDate
* @return
*/
public static boolean compNow(Date compareDate) {
if ((new Date()).before(compareDate))
return true;
return false;
}
public static String stringToMySQL(String time) throws java.text.ParseException {
java.text.SimpleDateFormat sdt = new SimpleDateFormat("MM/dd/yyyy");
java.text.SimpleDateFormat sdt_after = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdt.parse(time);
return sdt_after.format(date);
}
/**
* Return timestamp from string
* Example : 03/07/2002 12:22:22
* create by chuanyun tian
* @param time
* @return
* @throws ParseException
*/
public static Timestamp strToTimestamp(String time) throws java.text.ParseException {
java.text.SimpleDateFormat sdt = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date = sdt.parse(time);
java.util.Calendar cal = Calendar.getInstance();
cal.setTime(date);
return new Timestamp(cal.getTime().getTime());
}
/**
* 返回新的日期类型
* date : 原始日期长整形
* value : 须增加的值
* VAR : 修改日期类型 比如: 修改分钟 小时 天 星期 月 年
* Calendar.DAY_OF_MONTH
* Calendar.DAY_OF_WEEK
* Calendar.DAY_OF_YEAR
* Calendar.HOUR_OF_DAY
* Calendar.MONDAY
* @param date
* @param value
* @param modify
* @return
*/
public static long getNewDate(long date, int value, int VAR) {
java.util.Date dd = new java.util.Date();
dd.setTime(date);
Calendar cal = Calendar.getInstance();
cal.setTime(dd);
int temp = cal.get(VAR);
cal.set(VAR, temp + value);
return cal.getTime().getTime();
}
/**
* 得到取样时间
* @return
*/
public static Date getFetchDate(){
Date date = new Date();
Calendar rightNow = Calendar.getInstance();
int dayOfWeek = rightNow.get(Calendar.DAY_OF_WEEK)-1;
if(dayOfWeek==4||dayOfWeek==5){
date = DateUtil.getNewDate(new java.util.Date(),4,Calendar.DATE);
}else{
date = DateUtil.getNewDate(new java.util.Date(),2,Calendar.DATE);
}
return date;
}
/**
* 获取时间对应的名称
* @param ts 时间
* @return tname 时间名称
*/
public static String getTimeName(Timestamp ts) {
return null;
}
/**
* 判断是否是闰年
* @param year
* @return
*/
public static boolean isLeapYear(int year) {
int residue = year%4;
if (residue != 0)
return false;
else {
residue = year%100;
if (residue != 0)
return true;
else {
residue = year%400;
if (residue == 0)
return true;
else
return false;
}
}
}
/**
* 根据年份,月份得到当月最后一天
* @param year
* @param month
* @return
*/
public static int getDay(int year,int month) {
int day = 1;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
if (isLeapYear(year)) {
day = 29;
} else {
day = 28;
}
break;
default:
}
return day;
}
public static java.util.Date getFormatDate(String str,int type) {
java.util.Date date = null;
str = str.trim();
str = str.replaceAll("o|O|o|O","0");
str = str.replaceAll("良", "年");
str = str.replaceAll("结业", "");
str = str.replaceAll(" ", " ");
str = str.replaceAll("_", "");
str = str.replaceAll("—", "");
str = str.replaceAll("E\\d+", "");
str = str.replaceAll("…..", "");
if ("".equals(str)) str = "无";
//str = str.replaceAll("无", "");
String str1 = ".*月份";
String str2 = "\\s*[0-9]+\\s*";
String str3 = "\\d{1,4}\\.(\\d{1,4}(\\.|月))?";
String str4 = "\\s*\\d{1,4}\\s*年\\s*\\d{1,2}\\s*月";
String str5 = "(\\d{1,4}[\\.|/]\\d{1,2})([\\.|/]\\d{1,2})?[\\s|-]+(\\d{1,4}[\\.|/]\\d{1,2})([\\.|/]\\d{1,2})?";
String str6 = "\\d{1,4}[-|.|\\|/|,]\\d{1,2}[-|.|\\|/|,]?(\\d{1,2})?";
String str7 = "\\d{1,2}/\\d{1,2}/\\d{1,4}";
String str8 = "应届";
String str9 = "(无|大专)";
String str10 = "\\d{1,4}\\s*年\\s*";
String str11 = ".*[-|—]\\s*[-|—].*";
String str12 = "\\s*/\\s*";
// 匹配 形如:"一月份"
Pattern pattern = Pattern.compile(str1);
Matcher matcher = pattern.matcher(str);
/*// 匹配全数字
Pattern pattern2 = Pattern.compile("[0-9]+");
Matcher numberMatcher = pattern2.matcher(str);
// 匹配 10. 或 10.10.
Pattern pattern3 = Pattern.compile(str3);
Matcher matcher3 = pattern3.matcher(str);
// 匹配 xx[xx]年x[x]月
Pattern pattern4 = Pattern.compile(str4);
Matcher matcher4 = pattern4.matcher(str);*/
String specialStr = "\\.|\\,|\\/|\\-|\\\\";
Calendar calendar = Calendar.getInstance();
int year = 2008;
int month = 0;
int day = 1;
// 汉字模式
if (matcher.find()) {
int monthIndex = str.indexOf("月");
String strMonth = str.substring(0, monthIndex);
if ("一".equals(strMonth) || "1".equals(strMonth)) {
month = 1;
} else if ("二".equals(strMonth) || "2".equals(strMonth)) {
month = 2;
} else if ("三".equals(strMonth) || "3".equals(strMonth)) {
month = 3;
} else if ("四".equals(strMonth) || "4".equals(strMonth)) {
month = 4;
} else if ("五".equals(strMonth) || "5".equals(strMonth)) {
month = 5;
} else if ("六".equals(strMonth) || "6".equals(strMonth)) {
month = 6;
} else if ("七".equals(strMonth) || "7".equals(strMonth)) {
month = 7;
} else if ("八".equals(strMonth) || "8".equals(strMonth)) {
month = 8;
} else if ("九".equals(strMonth) || "9".equals(strMonth)) {
month = 9;
} else if ("十".equals(strMonth) || "10".equals(strMonth)) {
month = 10;
} else if ("十一".equals(strMonth) || "11".equals(strMonth)) {
month = 11;
} else if ("十二".equals(strMonth) || "12".equals(strMonth)) {
month = 12;
}
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR));
calendar.set(Calendar.MONTH, month - 1);
calendar.set(Calendar.DAY_OF_MONTH, day);
date = calendar.getTime();
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
return date;
}
// str8
pattern = Pattern.compile(str8);
matcher = pattern.matcher(str);
if (matcher.find()) {
date = calendar.getTime();
return date;
}
// str11
pattern = Pattern.compile(str11);
matcher = pattern.matcher(str);
if (matcher.find()) {
str = "无";
}
// str12
pattern = Pattern.compile(str12);
matcher = pattern.matcher(str);
if (matcher.matches()) {
str = "无";
}
// str9
pattern = Pattern.compile(str9);
matcher = pattern.matcher(str);
if (matcher.find()) {
return date;
}
// str10
pattern = Pattern.compile(str10);
matcher = pattern.matcher(str);
if (matcher.matches()) {
str = str.replaceAll("年", ".");
}
//str7
pattern = Pattern.compile(str7);
matcher = pattern.matcher(str);
if (matcher.matches()) {
String[] array = str.split("/");
String tempMonth = array[0].trim();
String tempDay = array[1].trim();
String tempYear = array[2].trim();
if (type == 0) { // 月/日/年
calendar.set(calendar.YEAR, Integer.parseInt(tempYear));
calendar.set(calendar.MONTH, Integer.parseInt(tempMonth)-1);
calendar.set(calendar.DAY_OF_MONTH, Integer.parseInt(tempDay));
} else { // 日/月/年
calendar.set(calendar.YEAR, Integer.parseInt(tempYear));
calendar.set(calendar.MONTH, Integer.parseInt(tempDay)-1);
calendar.set(calendar.DAY_OF_MONTH, Integer.parseInt(tempMonth));
}
date = calendar.getTime();
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
return date;
}
// str5
pattern = Pattern.compile(str5);
matcher = pattern.matcher(str);
if (matcher.matches()) {
str = str.replaceAll("\\s+", "-");
str = str.substring(str.indexOf("-") + 1);
date = getFormatDateByMark(str,specialStr);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
return date;
}
// str6
pattern = Pattern.compile(str6);
matcher = pattern.matcher(str);
if (matcher.matches()) {
str = str.replaceAll(specialStr, ".");
}
// str3
pattern = Pattern.compile(str3);
matcher = pattern.matcher(str);
if (matcher.matches()) {
str = str.replaceAll("月", ".");
str = str.substring(0, str.lastIndexOf("."));
}
if (str.indexOf(".") > -1 || str.indexOf(",") > -1 || str.indexOf("/") > -1 || str.indexOf("\\") > -1 || str.indexOf("-") > -1) {
date = getFormatDateByMark(str,specialStr);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
return date;
}
//str4
pattern = Pattern.compile(str4);
matcher = pattern.matcher(str);
if (matcher.find()) {
int beginIndex = 0;
int endIndex = 0;
matcher.reset();
while(matcher.find()) {
beginIndex = matcher.start();
endIndex = matcher.end();
}
str = str.substring(beginIndex, endIndex);
int indexYear = str.indexOf("年");
int indexMonth = str.indexOf("月");
year = Integer.parseInt(str.substring(0, indexYear));
month = Integer.parseInt(str.substring(indexYear + 1, indexMonth));
/*if (indexMonth != str.length() - 1) {
day = Integer.parseInt(str.substring(indexMonth + 1, str.length()));
calendar.set(Calendar.DATE, day);
}*/
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
date = calendar.getTime();
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
return date;
}
// str2
pattern = Pattern.compile(str2);
matcher = pattern.matcher(str);
if (matcher.matches()) {
str = str.trim();
date = getFormatDateByNumeric(str);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
}
return date;
}
private static java.util.Date getFormatDateByMark(String str,String specialStr) {
Calendar calendar = Calendar.getInstance();
int year = 2008;
int month = 0;
int day = 1;
java.util.Date date = null;
String [] strArray = str.split(specialStr);
String strYear = strArray[0].trim();
if (strArray[0].length() < 4) {
int currYear = calendar.get(Calendar.YEAR);
String tempYear = String.valueOf(currYear);
String tempStr = tempYear.substring(0,4 - strArray[0].length());
strYear = tempStr + strYear;
year = Integer.parseInt(strYear);
if (year > currYear) {
int offset = (int)Math.pow(10, strArray[0].length());
year = year - offset;
strYear = String.valueOf(year);
}
}
year = Integer.parseInt(strYear);
month = Integer.parseInt(strArray[1].trim());
if (strArray.length > 2) {
day = Integer.parseInt(strArray[2].trim());
calendar.set(Calendar.DATE, day);
}
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
calendar.set(Calendar.DAY_OF_MONTH, 1);
date = calendar.getTime();
return date;
}
private static java.util.Date getFormatDateByNumeric(String str) {
String tempYear = null;
String tempMonth = null;
String tempDay = null;
java.util.Date date = null;
Calendar calendar = Calendar.getInstance();
if (str.length() <= 4) {
int currYear = calendar.get(Calendar.YEAR);
String tempStr = String.valueOf(currYear);
tempYear = tempStr.substring(0,4 - str.length());
tempYear = tempYear + str;
if (str.length() == 4) {
String tempYear1 = tempYear.substring(0, 2);
String tempMonth1 = tempYear.substring(2,4);
int iTempYear1 = Integer.parseInt(tempYear1);
int tempCurrYear = currYear - 2000;
if (!"19".equals(tempYear1) && !"20".equals(tempYear1)) {
if (tempCurrYear >= iTempYear1) {
tempYear = "20" + tempYear1;
} else {
tempYear = "19" + tempYear1;
}
tempMonth = tempMonth1;
}
}
int year = Integer.parseInt(tempYear);
if (year > currYear) {
int offset = (int)Math.pow(10, str.length());
year = year - offset;
tempYear = String.valueOf(year);
}
} else if(str.length() > 4 && str.length() <= 6) {
tempYear = str.substring(0,4);
tempMonth = str.substring(4, str.length());
} else {
tempYear = str.substring(0,4);
tempMonth = str.substring(4, 6);
tempDay = str.substring(6, str.length());
if ("0".equals(tempDay)) tempDay = "1";
}
if (tempYear != null) calendar.set(Calendar.YEAR, Integer.parseInt(tempYear));
if (tempMonth != null) calendar.set(Calendar.MONTH, Integer.parseInt(tempMonth) - 1);
else calendar.set(Calendar.MONTH, 0);
if (tempDay != null) calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(tempDay));
else calendar.set(Calendar.DAY_OF_MONTH, 1);
date = calendar.getTime();
return date;
}
}