Java 日期操作

来源:互联网 发布:欧式快热炉 油汀 知乎 编辑:程序博客网 时间:2024/06/08 19:39
package date;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;public class DateOp {    public static void main(String[] args){        String begin="2017-02-28";        String end="2017-03-01";        try {            List<String> listDate= new ArrayList<>();            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");            //字符串转Date            Date beginDateOp = sdf.parse(begin);            Date endDate = sdf.parse(end);            //Date转字符串            String strBegin=sdf.format(beginDateOp);            String strEnd=sdf.format(endDate);            //Date转Calendar            Calendar beginCalendar = new GregorianCalendar();   //或Calendar beginCalendar=Calendar.getInstance();            Calendar endCalendar = new GregorianCalendar();            beginCalendar.setTime(beginDateOp);            endCalendar.setTime(endDate);            //Calendar转Date            java.util.Date beginDateNew=beginCalendar.getTime();            java.util.Date endDateNew=endCalendar.getTime();            //Calendar字段获取            java.util.Date retBegin=beginCalendar.getTime();            int year=beginCalendar.get(Calendar.YEAR);            int month=beginCalendar.get(Calendar.MONTH)+1;          //月份从0开始            int day=beginCalendar.get(Calendar.DATE);            int weekDay=beginCalendar.get(Calendar.DAY_OF_WEEK);            int weekInMonth=beginCalendar.get(Calendar.WEEK_OF_MONTH);            int weekInYear=beginCalendar.get(Calendar.WEEK_OF_YEAR);            System.out.println("这是 " + year + " 年 "+ month + " 月 "+ day + " 日,星期"+ weekDay + ",本月第 "+ weekInMonth + " 周, 本年第 " + weekInYear + " 周");            //判断日期前后            System.out.println(beginCalendar.before(endCalendar));  //相当于beginCalendar.getTimeInMillis()<endCalendar.getTimeInMillis()?            System.out.println(beginCalendar.after(endCalendar));   //相当于beginCalendar.getTimeInMillis()>endCalendar.getTimeInMillis()?            //日期相差几天            long diffDay=(endCalendar.getTimeInMillis()-beginCalendar.getTimeInMillis())/(1000*60*60*24);            System.out.println("日期相差 "+diffDay+" 天");            //从开始日期到结束日期之间日期            System.out.println("这些日期为:");            while(beginCalendar.getTimeInMillis()<=endCalendar.getTimeInMillis()){                listDate.add(sdf.format(beginCalendar.getTime()));                beginCalendar.add(Calendar.DATE, 1);            }            for(String date:listDate){                System.out.println(date);            }            //Calendar增减天、月、年            Calendar calendar1=new GregorianCalendar();            calendar1.add(Calendar.DATE, 1);            System.out.println("明天:" + sdf.format(calendar1.getTime()));            Calendar calendar2=new GregorianCalendar();            calendar2.add(Calendar.MONTH, 1);            System.out.println("下个月:" + sdf.format(calendar2.getTime()));            Calendar calendar3=new GregorianCalendar();            calendar3.add(Calendar.YEAR, 1);            System.out.println("明年:" + sdf.format(calendar3.getTime()));        }        catch (ParseException ex) {            System.out.println(ex.getCause());        }    }}
0 0