java.util.Date类中的很多方法已经过时
原作者
http://blog.sina.com.cn/s/blog_45c06e600100pm77.html
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 不需要特殊的操作,他直接返回一个月中的第几天
分享到:
相关推荐
System.out.println("WEEK_OF_YEAR:" + calendar.get(Calendar.WEEK_OF_YEAR)); System.out.println("WEEK_OF_MONTH:" + calendar.get(Calendar.WEEK_OF_MONTH)); System.out.println("DATE:" + calendar.get...
这里,`set(Calendar.DAY_OF_WEEK, ...)`将日期设置为本周的第一天,而`set(Calendar.WEEK_OF_YEAR, ...)`确保我们处在一年中的第一周。然后,`getTime()`返回的是一个`Date`对象,代表了这一周的开始日期。 此外,...
cal.add(Calendar.WEEK_OF_YEAR, -1); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime()); } public String getPreviousWeekSunday() { ...
cal.add(Calendar.WEEK_OF_YEAR, -1); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); cal.add(Calendar.DATE, weeks); return getNowTime("yyyy-MM-dd"); } ``` 这里先回溯一周,然后调整到星期一,再根据`...
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // 将当前日期设为星期一 System.out.println("本周第一天:" + c.getTime()); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // 将当前日期设为...
", 星期: " + calendar.get(Calendar.DAY_OF_WEEK)); } ``` 上述代码将打印出5月的每一天以及对应的星期。`Calendar.DAY_OF_WEEK`返回的是1到7的值,其中1代表周日,7代表周六。你可能需要将其转换为常见的星期...
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` int(10) NOT NULL COMMENT '获得指定日期是所在年份的第几周', `WEEK_OF_MONTH` int(10) NOT NULL COMMENT '获得指定日期是所在月份的第几周', `DAY_OF_MONTH` int(10) NOT NULL COMMENT '获得...
该函数的输入变量为 gc_solar_calendar_year 和 gc_solar_calendar_month,输出变量为 start_day_of_week 和 temp_total_day。 在该函数中,首先对输入变量进行初始化,然后使用循环计算当前月份和年份的总天数 ...
int startOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - Calendar.MONDAY; calendar.add(Calendar.DAY_OF_MONTH, -startOfWeek); Date startOfWeekDate = calendar.getTime(); calendar.add(Calendar.DAY_OF_...
要得到某月的第一天是星期几,我们可以创建一个`Calendar`实例,设置到指定的月份和年份,然后调用`get(Calendar.DAY_OF_WEEK)`方法,其中返回值范围是1(表示星期日)到7(表示星期六)。 ```java Calendar ...
calendar.add(Calendar.WEEK_OF_YEAR, -1); // 减1周 ``` 六、日期格式化 将`Calendar`对象转换为字符串通常需要`SimpleDateFormat`类: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:...
int weekno = cal.get(Calendar.WEEK_OF_YEAR); ``` 也可以计算一年中的第几星期是几号,例如: ```java SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal...
$(obj).addClass("calendar_day_act").siblings().removeClass("calendar_day_act"); } }); 点击上方显示当前年份和周的DOM部分可选择并跳转到指定年份和周。 插件提供的方法: //获取周第一天方法weekfirstdate...
例如,`cal.add(Calendar.DAY_OF_WEEK, (9-cal.get(Calendar.DAY_OF_WEEK))%7)`语句将当前日期增加到下周一周的第一天。 获取上一周一周的日期 要获取上一周一周的日期,需要使用`Calendar`类的`add`方法减少当前...
首先,Calendar 类提供了许多常量字段,例如 DATE、DAY_OF_MONTH、DAY_OF_WEEK、DAY_OF_YEAR、HOUR、HOUR_OF_DAY、MILLISECOND、MINUTE、SECOND、WEEK_OF_MONTH、WEEK_OF_YEAR、MONTH 等。这些常量字段可以用来获取...
- 获取某一天是一年中的第几星期,可以使用 `Calendar.WEEK_OF_YEAR`: ```java Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, 2006); cal.set(Calendar.MONTH, 9); // 9代表10月,因为月份...
calendar.add(Calendar.WEEK_OF_MONTH, 1); } // 检查是否为13号 if (calendar.get(Calendar.DAY_OF_MONTH) == 13) { System.out.println("第十个星期五是13号"); } else { System.out.println("第十个星期...
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); cal.add(Calendar.DAY_OF_MONTH, 6); return cal.getTime(); } /** * 获取指定时间范围的第一天 * * @param dateRangeType * 时间范围类型 * ...
- `now.get(Calendar.DAY_OF_MONTH)` 和 `now.get(Calendar.DAY_OF_WEEK)`:在循环中,这些方法用来获取当前日期和其在一周中的位置。 - 使用 `if` 语句,根据日期是否是今天的日期,以及日期数字是否小于10,来...