根据汉字调整时间格式
public static <T> T getTime(String needFormatTimeStr, Integer dataType, Integer returnType){
try{
String formmat = "";
if(dataType == 1){
formmat = "yyyy-MM-dd";
}
if(dataType == 2){
formmat = "yyyy-MM-dd HH:mm:ss";
}
if(dataType == 3){
formmat = "HH:mm:ss";
}
Calendar calendar = null;
String[] DayAndTime = needFormatTimeStr.split(" ");
String timeTest = DayAndTime[0];
if( "本年年底".equals(timeTest)
|| "今年年底".equals(timeTest) ){
calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
}else if ( "本月月底".equals(timeTest) ){
calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
}else if ( (timeTest.contains("年底") && timeTest.length() == 6)
|| (timeTest.contains("年年底") && timeTest.length() == 7)
|| (timeTest.contains("年") && timeTest.length() == 5 ) ){
timeTest = timeTest.replace("年年底","");
timeTest = timeTest.replace("年底","");
timeTest = timeTest.replace("年","");
if(timeTest.length() == 4 ){
calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,Integer.valueOf(timeTest));
calendar.set(Calendar.DAY_OF_YEAR, calendar.getActualMaximum(Calendar.DAY_OF_YEAR));
}
}else if ( timeTest.contains("年") && ( timeTest.contains("月") || timeTest.contains("月底") ) && ( !timeTest.contains("日") ) ){
String[] timelist1 = timeTest.split("年");
if(timelist1[0].length() == 4 ){
if(timelist1[1].contains("月底"))
timelist1[1] = timelist1[1].replace("月底","");
if(timelist1[1].contains("月"))
timelist1[1] = timelist1[1].replace("月","");
if(timelist1[1].length() == 1)
timelist1[1] = "0"+timelist1[1];
calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,Integer.valueOf(timelist1[0]));
calendar.set(Calendar.MONTH, (Integer.valueOf(timelist1[1])-1) );
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
}
}else if ( timeTest.contains("年") && ( timeTest.contains("月") ) && ( timeTest.contains("日") ) ){
String[] timelist1 = timeTest.split("年");
if( timelist1[0].length() == 4 ){
String[] timelist2 = timelist1[1].split("月");
if( timelist2[0].length() == 1)
timelist2[0] = "0"+timelist2[0];
timelist2[1] = timelist2[1].replace("日","");
calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,Integer.valueOf(timelist1[0]));
calendar.set(Calendar.MONTH, (Integer.valueOf(timelist2[0])-1) );
calendar.set(Calendar.DATE, Integer.valueOf(timelist2[1]) );
}
}else if ( !timeTest.contains("年") && ( timeTest.contains("月") || timeTest.contains("月底") ) && ( !timeTest.contains("日") ) ){
timeTest = timeTest.replace("月底","");
timeTest = timeTest.replace("月","");
calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, (Integer.valueOf(timeTest)-1) );
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
}else if ( !timeTest.contains("年") && ( timeTest.contains("月") && timeTest.contains("日") ) ){
String[] timelist1 = timeTest.split("月");
if( timelist1[0].length() == 1)
timelist1[0] = "0"+timelist1[0];
timelist1[1] = timelist1[1].replace("日","");
if( timelist1[1].length() == 1)
timelist1[1] = "0"+timelist1[1];
calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, (Integer.valueOf(timelist1[0])-1) );
calendar.set(Calendar.DATE, Integer.valueOf(timelist1[1]) );
}else if( timeTest.contains("-") ){
String[] timelist = timeTest.split("-");
if ( timelist.length == 3 && timelist[0].length() == 4){
if( timelist[1].length() == 1 ){
timelist[1] = "0"+timelist[1];
}
if( timelist[2].length() == 1 ){
timelist[2] = "0"+timelist[2];
}
calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,Integer.valueOf(timelist[0]));
calendar.set(Calendar.MONTH, (Integer.valueOf(timelist[1])-1) );
calendar.set(Calendar.DATE, Integer.valueOf(timelist[2]) );
}else if ( timelist.length == 2 ){
if(timelist[0].length() == 4 ){
if( timelist[1].length() ==1 ){
timelist[1] = "0"+timelist[1];
}
calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,Integer.valueOf(timelist[0]));
calendar.set(Calendar.MONTH, (Integer.valueOf(timelist[1])-1) );
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
}else{
if( timelist[0].length() == 1 ){
timelist[0] = "0"+timelist[0];
}
if( timelist[1].length() == 1 ){
timelist[1] = "0"+timelist[1];
}
calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, (Integer.valueOf(timelist[0])-1) );
calendar.set(Calendar.DATE, Integer.valueOf(timelist[1]) );
}
}
}
if(calendar!=null){
if(DayAndTime.length == 2 ){
String sfm = DayAndTime[1];
sfm = sfm.replace(":",":");
sfm = sfm.replace(":",":");
sfm = sfm.replace(":",":");
System.out.println("sfm:"+sfm);
String[] sfmlist = sfm.split(":");
if(sfmlist.length == 2){
calendar.set(Calendar.HOUR,Integer.valueOf(sfmlist[0]));
calendar.set(Calendar.MINUTE,Integer.valueOf(sfmlist[1]));
calendar.set(Calendar.SECOND,59);
}
if(sfmlist.length == 3){
calendar.set(Calendar.HOUR,Integer.valueOf(sfmlist[0]));
calendar.set(Calendar.MINUTE,Integer.valueOf(sfmlist[1]));
calendar.set(Calendar.SECOND,Integer.valueOf(sfmlist[2]));
}
}else{
if(dataType == 2) setLastTime(calendar);
}
SimpleDateFormat sdf = new SimpleDateFormat(formmat);
System.out.println(">>>> 转换后的时间 " + sdf.format(calendar.getTime()));
if(returnType == 1){
return (T) sdf.format(calendar.getTime());
}
if(returnType == 2){
Date date = (calendar.getTime());
return (T) calendar.getTime();
}
}
}catch (Exception e){
e.printStackTrace();
return null;
}
return null;
}