Java 日期操作

1 篇文章 0 订阅

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值