如题,求解几个日期操作的方法:
1.每月的第一天:输入一个 yyyy-MM-dd 格式的日期,返回该月的第一天的yyyy-MM-dd格式的字符串。2.每月的最后一天:输入一个 yyyy-MM-dd 格式的日期,返回该月的最后一天的yyyy-MM-dd格式的字符串。例如 2007-02-28 闰年则是 2008-02-29 3.指定时间段内的所有日期序列:例如输入 2007-08-29 ,2007-09-02,则返回
2007-08-29,2007-08-30,2007-08-31,,,2007-09-02 的List 或String[]请大侠们支招。百分感谢。
1.每月的第一天:输入一个 yyyy-MM-dd 格式的日期,返回该月的第一天的yyyy-MM-dd格式的字符串。2.每月的最后一天:输入一个 yyyy-MM-dd 格式的日期,返回该月的最后一天的yyyy-MM-dd格式的字符串。例如 2007-02-28 闰年则是 2008-02-29 3.指定时间段内的所有日期序列:例如输入 2007-08-29 ,2007-09-02,则返回
2007-08-29,2007-08-30,2007-08-31,,,2007-09-02 的List 或String[]请大侠们支招。百分感谢。
{
public DateTime()
{
} /**
* 取年日期时间
* @return String 返回 yyyy-MM-dd
*/
public static String getdate(Date date) {
java.text.SimpleDateFormat formatter_f = new java.text.SimpleDateFormat(
"yyyy-MM-dd ");
String new_date_f = formatter_f.format(date); //将日期时间格式化
return new_date_f;
}
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;public class Test { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) throws ParseException {
Date date = sdf.parse("2007-09-25");
Date date2 = sdf.parse("2007-10-2");
System.out.println(sdf.format(getFirstMonthDay(date)));
System.out.println(sdf.format(getLastMonthDay(date)));
List<Date> list = getAllDates(date, date2);
for(Date d : list) {
System.out.println(sdf.format(d));
}
}
public static Date getFirstMonthDay(Date date) {
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.set(Calendar.DATE, calendar.getActualMinimum(Calendar.DATE));
return calendar.getTime();
}
public static Date getLastMonthDay(Date date) {
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
return calendar.getTime();
}
public static List<Date> getAllDates(Date start, Date end) {
Calendar calendar1 = new GregorianCalendar();
calendar1.setTime(start);
Calendar calendar2 = new GregorianCalendar();
calendar2.setTime(end);
List<Date> list = new ArrayList<Date>();
list.add(start);
while(calendar1.compareTo(calendar2) < 0) {
calendar1.add(Calendar.DATE, 1);
list.add(calendar1.getTime());
}
return list;
}
}
2007-06,2007-07,2007-08,2007-09 的List 或String[]
public static List<Date> getMonths(Date start, Date end) {
Calendar calendar1 = new GregorianCalendar();
calendar1.setTime(start);
Calendar calendar2 = new GregorianCalendar();
calendar2.setTime(end);
List<Date> list = new ArrayList<Date>();
while (calendar1.compareTo(calendar2) < 0) {
list.add(calendar1.getTime());
calendar1.add(Calendar.MONTH, 1);
}
list.add(calendar1.getTime());
return list;
}在main里面加个
List<Date> list2 = getMonths(date, date2);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM");
for (Date d : list2) {
System.out.println(sdf2.format(d));
}嘿~~