1、相关日期处理
public class DateUtil {
public static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private static SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
public static SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm");
private static DecimalFormat decimalFormat=new DecimalFormat("#####0.## S");
public static Date getEndDate(Date current) {
Calendar c = Calendar.getInstance();
c.setTime(current);
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
return c.getTime();
}
public static Date getStartDate(Date current){
Calendar calendarStart = Calendar.getInstance();
calendarStart.setTime(current);
calendarStart.set(calendarStart.get(Calendar.YEAR),
calendarStart.get(Calendar.MONTH),
calendarStart.get(Calendar.DATE),
0, 0, 0);
current = calendarStart.getTime();
return current;
}
public static Date getFirstDay() {
Calendar c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH, 1);
return c.getTime();
}
public static Date getEndDay() {
Calendar ca = Calendar.getInstance();
ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
return ca.getTime();
}
public static int getCurrentMonthDay() {
Calendar a = Calendar.getInstance();
a.set(Calendar.DATE, 1);
a.roll(Calendar.DATE, -1);
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
public static List<String> findDates(Date dBegin, Date dEnd) {
SimpleDateFormat formart = new SimpleDateFormat("yyyy-MM-dd");
List<String> lDate = new ArrayList<>();
lDate.add(formart.format(dBegin));
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(dEnd);
while (dEnd.after(calBegin.getTime())) {
calBegin.add(Calendar.DAY_OF_MONTH, 1);
lDate.add(formart.format(calBegin.getTime()));
}
return lDate;
}
public static String getNow() {
return sdf.format(Calendar.getInstance().getTime());
}
public static String getNowId() {
return sdf2.format(Calendar.getInstance().getTime());
}
public static Date getDateByFormat3(String dateString){
Date date=null;
if(dateString==null) return null;
try {
date=sdf3.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
public static String getCronByDate(Date time){
Calendar calendar=Calendar.getInstance();
calendar.setTime(time);
StringBuffer sb=new StringBuffer();
sb.append(calendar.get(Calendar.SECOND)).append(" ");
sb.append(calendar.get(Calendar.MINUTE)).append(" ");
sb.append(calendar.get(Calendar.HOUR_OF_DAY)).append(" ");
sb.append(calendar.get(Calendar.DAY_OF_MONTH)).append(" ");
sb.append(calendar.get(Calendar.MONTH)+1).append(" ");
sb.append("?").append(" ");
sb.append(calendar.get(Calendar.YEAR));
return sb.toString();
}
public static String secToTime(int time) {
String timeStr = null;
int hour = 0;
int minute = 0;
int second = 0;
if (time <= 0)
return "00:00:00";
else {
minute = time / 60;
if (minute < 60) {
second = time % 60;
timeStr = "00:"+unitFormat(minute) + ":" + unitFormat(second);
} else {
hour = minute / 60;
if (hour > 99)
return "99:59:59";
minute = minute % 60;
second = time - hour * 3600 - minute * 60;
timeStr = unitFormat(hour) + ":" + unitFormat(minute) + ":" + unitFormat(second);
}
}
return timeStr;
}
public static String msToSec(long time) {
return decimalFormat.format(time/1000f);
}
public static String unitFormat(int i) {
String retStr = null;
if (i >= 0 && i < 10)
retStr = "0" + Integer.toString(i);
else
retStr = "" + i;
return retStr;
}
public static void main(String[] args) {
}
public static String getBeforeHourTime(int ihour){
String returnstr = "";
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - ihour);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
returnstr = df.format(calendar.getTime());
return returnstr;
}
public static Date getPerDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -1);
date = calendar.getTime();
return date;
}
public static Date getPer30Day(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, -30);
date = calendar.getTime();
return date;
}
public static Date getNextDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 1);
date = calendar.getTime();
return date;
}
}