Java中Calendar.DAY_OF_WEEK需要减一的原因
JAVA of 需要 原因 Day calendar Week
2023-09-27 14:22:24 时间
http://blog.sina.com.cn/s/blog_45c06e600100pm77.html
——————————————————————————————————————————————————————————————————————
网上找的,刚刚接触Calendar类,有点复杂,记下来。
Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。
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.地区名) 来实现。
3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天
相关文章
- Java 枚举7常见种用法
- 【DataStructure】Charming usage of Set in the java
- com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
- JSON parse error: Cannot deserialize value of type `java.util.Date` from String 2023-02-19 00:00:00
- 异常Failed to convert value of type ‘java.lang.String‘ to required type ‘java.util.Date‘;
- Java核心技术卷I基础知识2.1 安装Java开发工具包
- [转]深入理解Java的接口和抽象类
- Java 修饰符顺序 the sequential order of the modifiers
- 解决Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of VALUE_STRING
- 【Java】Java6 WebService的发布
- java两种同步机制的实现 synchronized和reentrantlock
- alue of type java.lang.String cannot be converted to JSONObject
- java 自动关闭资源的try语句
- java.lang.NoSuchFieldError: No static field abc_ic_ab_back_mtrl_am_alpha of type I in class Landroid/support/v7/appcompat/R$drawable
- java.util.concurrent.TimeoutException: Heartbeat of TaskManager with id container_1566481621886_4397244_01_000004 timed out.
- java中Comparatable接口和Comparator接口的区别
- Java学习-077-多线程10:线程资源同步问题实例演示
- 《Java学习笔记》:日期类常用方法全归纳,值得收藏。
- 华为OD机试 -数字涂色(Java) | 机试题+算法思路+考点+代码解析 【2023】
- A large-scale study on the usage of Java’s concurrent programming constructs
- Java线程池
- A compent required a bean of type ‘java.lang.String‘ that could not found