网上找的,刚刚接触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 不需要特殊的操作,他直接返回一个月中的第几天
分享到:
相关推荐
这里,`set(Calendar.DAY_OF_WEEK, ...)`将日期设置为本周的第一天,而`set(Calendar.WEEK_OF_YEAR, ...)`确保我们处在一年中的第一周。然后,`getTime()`返回的是一个`Date`对象,代表了这一周的开始日期。 此外,...
- `DAY_OF_WEEK`:表示一周中的哪一天,通常星期天为1。 - `DAY_OF_WEEK_IN_MONTH`:表示一个月中的星期几。 - `AM_PM`:表示当前时刻是上午还是下午。 - `HOUR`:12小时制的小时数。 - `HOUR_OF_DAY`:24小时制的...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); } public String getCurrentWeekday() { Calendar cal = Calendar.getInstance(); cal....
这里通过调整`Calendar`实例中的`DAY_OF_WEEK`属性为星期一,然后返回该日期。 #### 获取当前周的某一天 ```java public String getCurrentWeekday() { Calendar cal = Calendar.getInstance(); cal.add...
这里需要注意的是,虽然`DAY_OF_YEAR`属性可以帮助我们设置为一年中的某一天,但是直接设置`YEAR`属性为1并不意味着我们会得到实际的“本年最后一天”。实际上,在上面的例子中,我们将当前日期设置为1年1月1日,...
", 星期: " + calendar.get(Calendar.DAY_OF_WEEK)); } ``` 上述代码将打印出5月的每一天以及对应的星期。`Calendar.DAY_OF_WEEK`返回的是1到7的值,其中1代表周日,7代表周六。你可能需要将其转换为常见的星期...
`Calendar`类还提供了诸如获取周几(`get(Calendar.DAY_OF_WEEK)`)、获取一年中的第几天(`get(Calendar.DAY_OF_YEAR)`)等功能,以及调整日期(`roll()`方法)和判断闰年(`isLeapYear()`方法)等。 总之,Java的...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); System.out.println(df.format(cal.getTime())); // 输出:2006-01-02 ``` 7. add() 和 roll() 的用法 add() 和 roll() 方法是 Calendar 对象的两个重要方法。...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); cal.add(Calendar.DAY_OF_MONTH, 6); return cal.getTime(); } /** * 获取指定时间范围的第一天 * * @param dateRangeType * 时间范围类型 * ...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); System.out.println(df.format(cal.getTime())); //输出:2006-01-02 add() 和 roll() 的用法 add() 和 roll() 是 Calendar 类的两个方法,用于添加或回滚日期和...
要得到某月的第一天是星期几,我们可以创建一个`Calendar`实例,设置到指定的月份和年份,然后调用`get(Calendar.DAY_OF_WEEK)`方法,其中返回值范围是1(表示星期日)到7(表示星期六)。 ```java Calendar ...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); System.out.println(df.format(cal.getTime())); ``` 七、add() 和 roll() 的用法 在 Java 中,add() 和 roll() 方法是 Calendar 类的两个重要方法。add() 方法...
- `now.get(Calendar.DAY_OF_MONTH)` 和 `now.get(Calendar.DAY_OF_WEEK)`:在循环中,这些方法用来获取当前日期和其在一周中的位置。 - 使用 `if` 语句,根据日期是否是今天的日期,以及日期数字是否小于10,来...
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); if (dayOfWeek != Calendar.FRIDAY) { int daysToFirstFriday = (Calendar.FRIDAY - dayOfWeek + 7) % 7; calendar.add(Calendar.DAY_OF_MONTH, ...
int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 now.set(Calendar.DATE, first_day_of_week); return now.getTime(); } /** * 获得所在星期的最后一天 */ public static ...
- 计算一年中的第几星期是几号,可以通过设置 `WEEK_OF_YEAR` 和 `DAY_OF_WEEK`: ```java cal.set(Calendar.WEEK_OF_YEAR, 1); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); Date date = cal.getTime(); ...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); System.out.println(df.format(cal.getTime())); ``` add() 和 roll() 的用法 (1)add() 方法 可以使用 `add` 方法来将某个日期增加或减少一定的时间。例如: ```...
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); Date firstDayOfWeek = calendar.getTime(); ``` ### 4. 获取月、年的第一天和最后一天 要获取某个月的第一天和最后一天,可以先设置`Calendar`的`DAY_OF_...
if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { // 换行,表示周六 System.out.println(); } } System.out.println(); } } ``` 这个程序会打印出当前月份的日历,包括星期几的对齐和换行。...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); System.out.println(df.format(cal.getTime())); // 输出:2006-01-02 ``` add() 和 roll() 的用法 在 Java 中,add() 和 roll() 两个方法都是用于修改 Calendar ...