一、判断今日的日期
public static String getNowDate() {
Calendar cal = Calendar.getInstance();
java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String cdate = sdf.format(cal.getTime());
return cdate;
}
二、根据输入的任意时间字符串判断星期几
例:输入2016-10-24 返回 1
public static int getDate(String pTime) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
try {
c.setTime(format.parse(pTime));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int dayForWeek = 0;
if (c.get(Calendar.DAY_OF_WEEK) == 1) {
dayForWeek = 7;
} else {
dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
}
return dayForWeek;
}
三、日期字符串的加减
例:输入2016-10-24 2 表明加两天返回2016-10-26,若输入天数为负值,表明减两天
public static String countDate(String date, int day) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dt = null;
try {
dt = sdf.parse(date);
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.DAY_OF_YEAR, day);// 日期加10天
String format = sdf.format(rightNow.getTime());
return format;
} catch (ParseException e) {
e.printStackTrace();
return "";
}
}
四、遍历出一段时间包含的所有日期
例如:输入起始时间2016-10-24,结束时间2016-10-30,返回{2016-10-24,2016-10-25...2016-10-30}
public static ArrayList<String> getTime(String startDate, String endDate) {
if (!startDate.contains("-")){
startDate = Stringinsert(startDate,"-",4);
startDate = Stringinsert(startDate,"-",7);
}
if (!endDate.contains("-")){
endDate = Stringinsert(endDate,"-",4);
endDate = Stringinsert(endDate,"-",7);
}
try {
ArrayList<String> arrayList = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Long startM = null;
startM = sdf.parse(startDate).getTime();
Long endM = sdf.parse(endDate).getTime();
long result = (endM - startM) / (24 * 60 * 60 * 1000) + 1;
// //System.out.println("起止日期相差:" + result + "天");
Date startDay = sdf.parse(startDate);
Calendar startTime = Calendar.getInstance();
startTime.clear();
startTime.setTime(startDay);
for (int i = 0; i < (int) result; i++) {
String date = String.format("%1$04d-%2$02d-%3$02d", startTime.get(Calendar.YEAR), (startTime.get(Calendar.MONTH) + 1), startTime.get(Calendar.DAY_OF_MONTH));
arrayList.add(date);
startTime.add(Calendar.DAY_OF_YEAR, 1);
}
return arrayList;
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
遇到其他需要操作时期的工具类,会持续更新