获取当天是今年的第几天

package test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


/**
 * y:year-of-era;正正经经的年;
 * Y:week-based-year;只要本周跨年,那么这周就算入下一年;也就是 12 月
 */
public class testDate {

    public static void main(String[] args) throws ParseException{
        
        //字符串转换成日期
        Date date = new Date();
        SimpleDateFormat sim =new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sim2 =new SimpleDateFormat("YYYY-MM-dd");
        Date parse = sim.parse("2019-12-31");
        System.out.println(sim.format(parse));
        System.out.println(sim2.format(parse));
        
        //日期转换成字符串
        Calendar calendar = Calendar.getInstance();
        calendar.set(2019, Calendar.AUGUST, 31);
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat sdf2 =new SimpleDateFormat("YYYY-MM-dd");
        Date time = calendar.getTime();
        System.out.println("yyyy-MM-dd: "+ sdf.format(time));
        System.out.println("YYYY-MM-dd: "+ sdf2.format(time));
    
        calendar.set(2019, Calendar.DECEMBER, 31);
        time = calendar.getTime();
        System.out.println("yyyy-MM-dd: "+ sdf.format(time));
        System.out.println("YYYY-MM-dd: "+ sdf2.format(time));
        
 
         /**
         * setFirstDayOfWeek(int value) (jdk1.8)
         * 设置一个星期的第一天是什么;例如,在美国 SUNDAY, MONDAY法国。 
         */
        calendar.setFirstDayOfWeek(Calendar.MONDAY);//设置星期一为一周开始的第一天
        calendar.setMinimalDaysInFirstWeek(4);//可以不用设置
        calendar.setTimeInMillis(System.currentTimeMillis());//获得当前的时间戳
        int weekYear = calendar.get(Calendar.YEAR);//获得当前的年
        int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);//获得当前日期属于今年的第几周
        System.out.println("第几周:"+weekOfYear);
        
        /**
         * setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)(jdk1.8)
         * 设置此 Calendar日期与指定日期指定周年,周年和星期。
         */
        calendar.setWeekDate(weekYear, weekOfYear, 2);//获得指定年的第几周的开始日期
        long starttime = calendar.getTime().getTime();//创建日期的时间该周的第一天,
        calendar.setWeekDate(weekYear, weekOfYear, 1);//获得指定年的第几周的结束日期
        long endtime = calendar.getTime().getTime();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String dateStart = simpleDateFormat.format(starttime);//将时间戳格式化为指定格式
        String dateEnd = simpleDateFormat.format(endtime);
        System.out.println(dateStart);
        System.out.println(dateEnd);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值