java 求近一周_使用java获取当前是星期几

这篇博客讲述了在Java中如何正确获取当前是一周中的哪一天,遇到的问题是默认按照国际标准以周日为一周开始,而在中国通常以周一为开始。通过设置`Calendar`的`setFirstDayOfWeek`方法可以调整这一设定。博主分享了处理这一问题的代码片段,并提醒开发者在编程过程中要注意文化差异带来的影响。
摘要由CSDN通过智能技术生成

54707bc970eb239cf7702e9cab60b482.png有个小需求,获取今天是周几,想我大java,获取一个星期几不是手到擒来。

第一想法,System.currentTimeMillis(),这是个时间戳,还得处理秒数,太麻烦。

第二想法,new Date() deprecated?  好吧。

第三想法,Calendar,简单写下代码,开始调试

Shell

Calendar calendar = Calendar.getInstance();

int weekDay = calendar.get(Calendar.DAY_OF_WEEK) - 1;

1

2

3

Calendarcalendar=Calendar.getInstance();

intweekDay=calendar.get(Calendar.DAY_OF_WEEK)-1;

weekDay = 3,wtf?今天是周二,怎么给了我一个3,只听说过从0、1计数,没听说过从2开始计数的啊!

继续查

国际上是以星期日为一周第一天的开始,Calendar中提供的DAY_OF_WEEK获取的一周也是以星期日作为一周的开始。

而中国的习惯是以星期一作为一周的开始,所以需要根据项目的实际需求来设置。

好吧,真是人生处处皆学问,写代码还能学知识。

怎么办呢?Calendar有个api叫setFirstDayOfWeek,原来从哪一天开始是可以设置的,java也是蛮人性化的么~

Shell

calendar.setFirstDayOfWeek(Calendar.MONDAY);

1

calendar.setFirstDayOfWeek(Calendar.MONDAY);

继续调试

weekDay = 3

这就有点意思了,这个api是用来看的么? 继续查

官方文档一大堆,概括为:

setFirstDayOfWeek的方法意思只对WEEK_OF_MONTH与WEEK_OF_YEAR有作用.

WEEK_OF_MONTH:当前Calendar日期对象是当前月的第几周.

WEEK_OF_YEAR:当前Calendar 日期对象是当前年的第几周.

好吧,老老实实写下比较丑陋的代码

Shell

int weekDay = calendar.get(Calendar.DAY_OF_WEEK) - 1;

if (weekDay == 0) {

weekDay = 7;

}

1

2

3

4

intweekDay=calendar.get(Calendar.DAY_OF_WEEK)-1;

if(weekDay==0){

weekDay=7;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值