java获取日期当前周,在Java中获取当前周的开始和结束日期 - (MONDAY TO SUNDAY)

Today is 2014-04-06 - SUNDAY.

Output using below code is :-

Start Date = 2014-04-07

End Date = 2014-04-13

I want Output as :-

Start Date = 2014-03-31

End Date = 2014-04-06

// Get calendar set to current date and time

Calendar c = GregorianCalendar.getInstance();

System.out.println("Current week = " + Calendar.DAY_OF_WEEK);

// Set the calendar to monday of the current week

c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

System.out.println("Current week = " + Calendar.DAY_OF_WEEK);

// Print dates of the current week starting on Monday

DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());

String startDate = "", endDate = "";

startDate = df.format(c.getTime());

c.add(Calendar.DATE, 6);

endDate = df.format(c.getTime());

System.out.println("Start Date = " + startDate);

System.out.println("End Date = " + endDate);

解决方案

I believe that simply using:

c.setFirstDayOfWeek(Calendar.MONDAY);

will resolve your issue... :)

EXPLANATION:

In my opinion, right now, your first day of week seems to be set on Calendar.SUNDAY. I believe that this depends on your Locale.

Thus, a (better?) alternative would be to initialise your Calendar specifying the Locale you're interested in...

For example:

Calendar c = GregorianCalendar.getInstance(Locale.US);

... will give you your current output, while:

Calendar c = GregorianCalendar.getInstance(Locale.FRANCE);

... will give you your expected output ;)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值