正确获取星期几(Calendar.DAY_OF_WEEK)

Calendar now = Calendar.getInstance();
//一周第一天是否为星期天
boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY);
//获取周几
int weekDay = now.get(Calendar.DAY_OF_WEEK);
//若一周第一天为星期天,则-1
if(isFirstSunday){weekDay = weekDay - 1;if(weekDay == 0){weekDay = 7;}
}
//打印周几
System.out.println(weekDay);//若当天为2014年10月13日(星期一),则打印输出:1
//若当天为2014年10月17日(星期五),则打印输出:5
//若当天为2014年10月19日(星期日),则打印输出:7
星期日为一周的第一天 SUN MON TUE WED THU FRI SAT
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一为一周的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

以下参考:

1. 在获取月份时,Calendar.MONTH + 1 的原因
Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。

2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因
Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。
有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
看下表的返回值

星期日为一周的第一天 SUN MON TUE WED THU FRI SAT
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一为一周的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”
Java中设置不同地区的输出可以使用 Locale.setDefault(Locale.地区名) 来实现。

System.out.println(calendar.get(Calendar.DAY_OF_WEEK));

返回的是周几,而不是一周的第几天

可以这样设置,星期第一天是星期几:

calendar.setFirstDayOfWeek(Calendar.MONDAY);

也可以设置Calendar.SUNDAY

设置好了就决定了当前日期的WEEK_OF_YEAR,但并不会改变DAY_OF_WEEK !

3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天

Java正确获取星期Calendar.DAY_OF_WEEK相关推荐

  1. java calendar星期_Java正确获取星期Calendar.DAY_OF_WEEK

    Calendar now =Calendar.getInstance();//一周第一天是否为星期天 boolean isFirstSunday = (now.getFirstDayOfWeek() ...

  2. Java正确获取客户端真实IP方法整理

    转载自 干货:Java正确获取客户端真实IP方法整理 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apach ...

  3. 干货:Java正确获取客户端真实IP方法整理

    image 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客 ...

  4. java后端获取时间

    前言 我们在后端开发过程中,会遇到需要获取当前时间.昨日时间的情况,下面是在后端获取时间的方法 Java后端获取时间 Calendar ca = Calendar.getInstance(); Sim ...

  5. 正确获取星期几(Calendar.DAY_OF_WEEK)

    2019独角兽企业重金招聘Python工程师标准>>> 正确获取星期几(Calendar.DAY_OF_WEEK) Java代码 Calendar now = Calendar.ge ...

  6. Android Studio 基础 之 获取系统Calendar 日历日程(可获得当天以后可设定天数范围内的日历日程) (涉及指定日期时间判断是星期几的方法使用)的方法整理

    Android Studio 基础 之 获取系统Calendar 日历日程(可获得当天以后可设定天数范围内的日历日程) (涉及指定日期时间判断是星期几的方法使用)的方法整理 目录 Android St ...

  7. Java中Calendar.DAY_OF_WEEK、DAY_OF_MONTH需要减一的原因

    Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意. 1. 在获取月份时,Calendar.MONTH + 1 的原因(Java中Calendar.MONTH返回的数 ...

  8. java week of year_JDK Calendar类获取WEEK_OF_YEAR时的陷阱

    /*Calendar类是Java中使用的较为频繁的类,这个类中有很多静态方法非常实用,免去了我们自己手动计算日期的过程.Calendar.get(Calendar.WEEK_OF_YEAR) 用于获取 ...

  9. 日历 android 周历,Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理...

    Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理 目录 Android Studio 基础 之 获取系统Calendar ...

最新文章

  1. 加大力度改革 成都公安提高服务金融安防建设能力
  2. [PYTHON] 核心编程笔记(18.多线程编程)
  3. Python视频处理库:scikit-video
  4. Nlpir大数据知识图谱的落地指南
  5. 混合列压缩(HCC)在OLAP及OLTP场景中的测试
  6. html源码蔡,html基础代码详解
  7. [Android] Android 锁屏实现与总结 (一)
  8. Leetcode 99. 恢复搜索二叉树
  9. mt管理器图片在哪个文件夹_MT管理器构造(新手小白教程)-小白文件管理器
  10. 《Unity shader入门精要》阅读笔记
  11. 画 ArcFace 中的 margin 曲线
  12. uni-app使用阿里iconfont多色图标
  13. 通过FAR计算fRR
  14. 分析扁平线圈特斯拉模块电路
  15. PP-LiteSeg
  16. 自制IDE转SATA电源转接线
  17. 前端 react教程(详细版)
  18. 11个药店GSP风险管理教程
  19. Real-Time Rendering (5) - 非真实性渲染(Non-Photorealistic Rendering)
  20. sass-loader高版本问题,解析就报错!!

热门文章

  1. 当今的BIOS(UEFI)
  2. 电脑输入法哪个最好用,提高工作效率就选它
  3. 618营销新动向:Swisse年轻化产品教育成电商战场新突破口!
  4. [易飞]如何实现同单据两种不同凭证设计方式?(只打印单头单尾金额,多页最后一页面显示金额)
  5. CSP-J 2021 网络连接
  6. 给Ubuntu文件夹解锁
  7. 【NOIP2017提高A组模拟9.5】 NYG的背包
  8. 中国人保为正华消防承保产品责任险,为消费者保驾护航!
  9. python多元非线性回归_Python利用神经网络解决非线性回归问题实例详解
  10. Linux下操作Excel表格,xlsx表格