- 浏览: 109332 次
- 性别:
- 来自: 北京
文章分类
最新评论
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;
}
}
发表评论
-
解决excel文字读取错误 可能某些数字格式已丢失
2018-12-29 09:11 619ServletOutputStream ... -
struts上传下载多个文件
2015-04-30 11:24 513实例: 第一步导入包: commons-fileupload- ... -
jdcob--Could not initialize class com.jacob.com.ComThread
2015-02-27 09:00 19081--dll 文件 放在tomcat/bin 下面 ... -
ntko打印公章
2014-12-02 09:04 567//TANGER_OCX_OBJ.ActiveDocument ... -
hibernate 映射文件生成数据库表脚本
2011-03-28 16:20 866import org.hibernate.cfg.Config ... -
java换肤改变页面肤色
2011-03-02 14:05 995import java.io.IOException;impo ... -
java 过滤未登录的用户
2011-03-02 14:03 1103<filter> <filte ... -
java 在线用户统计
2011-03-02 13:47 1631web.xml <listener> ... -
java 过滤乱码
2011-03-02 13:44 948web.xml <filter> <f ... -
jacob资料
2011-02-13 23:48 1875JACOB是一个JAVA到微软的COM接口的桥梁。使用JACO ... -
hibernate 查询乱码
2010-10-06 15:12 748在使用HQL进行查询时,如果查询语句中存在中文字符,则会有乱码 ... -
java 多线程代码
2010-09-30 12:44 1490package com.jacob.activeX; imp ... -
过滤未登录的用户
2010-09-15 10:59 881package com.filter; import jav ... -
jacob操作word 解决换页问题
2010-09-13 08:17 3766package audit.pub.word; imp ... -
jacob操作word增加表格 行列
2010-08-10 09:52 2940import com.jacob.activeX.Activ ... -
jsp导出word 带图片
2010-04-12 17:28 33891.将word另存为html格式,然后将html格式的文件另存 ... -
读取blob格式图片上传到服务器目录
2010-04-12 17:21 1990//得到blob格式图片 String fileUrl = ... -
批量导入图片保存成blob格式
2010-03-31 15:15 1690/** * 创建目录 * @param director ... -
org.apache.tools包 解压缩zip 解决中文乱码 ant 版本冲突
2010-03-30 12:50 3040private void createDirectory(St ... -
java 获取文件大小
2010-03-29 14:32 15809import java.io.*; public class ...
相关推荐
Java中的日期处理涉及到多个类,包括Date、Calendar、GregorianCalendar以及日期格式化类如DateFormat和SimpleDateFormat。这些类主要用于管理、操作和格式化日期和时间。以下是对这些类的详细说明: 1. **Date类**...
在Java编程语言中,日期处理是一项常见的任务,用于管理和操作日期和时间。为了方便开发者,Java提供了多种工具类来处理日期。"日期处理工具类"通常是指一个自定义的类,它封装了一些常用的方法,例如日期格式化、...
在C语言中,日期处理是一项基础但重要的任务,它涉及到时间戳、日期格式化、日期比较和日期计算等。C语言本身并没有内置的日期库,但通过标准库中的`<time.h>`头文件,我们可以利用系统时间来实现日期的相关操作。...
在C++编程中,日期处理是一项常见的任务,尤其是在开发涉及日历、时间追踪或数据分析的应用程序时。C++标准库并没有内置一个强大的日期处理类,但可以通过自定义类或者使用第三方库来实现这一功能。本篇文章将深入...
本文将深入探讨C#中的日期处理函数,特别是`DateTime`类的使用方法。 1. `DateTime` 类型是C#中用于表示日期和时间的内置类型。通过以下方式可以创建一个表示当前时间的`DateTime`对象: ```csharp System....
Date4j是一个轻量级的日期处理类库,它的出现为Java开发者提供了一种更为简单易用的方式来处理日期和时间。这个库的目标是简化日期计算,避免使用Java标准库中的`java.util.Date`和`java.util.Calendar`这些复杂的...
以下是一些关键的Oracle日期处理函数和SQL语句的详细说明: 1. **TO_DATE函数**:用于将字符串转换为日期。例如,`TO_DATE('2022-04-05', 'YYYY-MM-DD')`将字符串'2022-04-05'转换为日期。日期格式必须与提供的模式...
在C++编程中,日期处理是一项常见的任务,特别是在开发涉及时间序列分析、日志记录或者时间敏感的应用程序时。为了方便地操作日期,我们可以自定义一个日期处理类,如标题所示的"日期处理类"。这个类通常会包含一...
java中关于日期处理的总结,包含各种日期格式之间的转java.util.Date(已经不提倡使用,该类的方法比较少) java.util.Calendar(抽象类) java.util.GregorianCalendar(是Calendar的子类,日期处理时候经常使用该类)****...
Oracle数据库在日期处理方面提供了丰富的函数和操作方式,使得对日期和时间的管理变得非常灵活。以下是对标题和描述中提到的知识点的详细说明: 1. **日期和字符转换**: - `to_date` 函数用于将字符型数据转换为...
Oracle数据库在日期处理方面提供了丰富的函数,使得对日期和时间的操作变得非常灵活。以下是对给定文件中提及的Oracle日期处理函数的详细说明: 1. **add_months(d, n)**: 此函数将日期d加上n个月,返回新的日期。...
在Java编程中,日期处理是一项常见的任务,涉及到各种日期和时间的操作。以下是一些关于Java日期处理的关键知识点,这些知识点在给定的文件中有所提及: 1. **获取当前日期**: Java通过`java.util.Date`类可以...
本文将详细介绍SQL中日期处理的常用方法,包括获取当前系统时间、日期加减运算、计算日期差、提取日期部分、转换日期格式等功能。 ### 一、获取当前系统时间 在SQL Server中,`GETDATE()`函数用于返回当前的系统...
在SQL Server中,日期处理是数据管理的核心部分,涉及到各种日期和时间的计算、比较以及格式化。本章主要探讨SQL Server中两种主要的日期类型:datetime和smalldatetime。 1. **日期类型概述** - **datetime**: ...
基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。
根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下有关 Java 日期处理的知识点: ### 1. 导入必要的包 在 Java 中处理日期时,我们需要导入一些必要的包来支持日期时间的格式化、解析等功能。示例...
在Oracle数据库中,日期处理是一项基础且重要的任务,它涉及到数据的存储、查询以及分析。Oracle提供了丰富的函数和操作符来处理日期,使得我们可以轻松地完成诸如计算星期几、两个日期之间的天数等常见需求。以下是...