本帖最后由 朱晓杰 于 2013-5-21 14:31 编辑
今天在整理java中处理日期的代码时,遇到了一个小困惑:如何获取本周的第一天和最后一天?现将代码贴上- import static java.lang.System.*;
- import java.util.Calendar;
- import java.util.Date;
- import java.text.SimpleDateFormat;
- class CalendarDemo
- {
- /**
- * 功能:格式化日期,获取格式化之后的日期
- * @param date:要进行格式化的Date类型的日期
- * @param pattern:格式字符串
- * 如果date为空,则返回当前时间格式化后的日期字符串
- * 示例 :yyyy-MM-dd HH:mm:ss
- * yyyy-MM-dd hh:mm:ss 两者大小写的区别
- * yyyy/MM/dd
- * yyyy年MM月dd日
- */
- public static String getFormatDate(Date date,String pattern){
- if(date == null || date.equals(""))
- date = new Date();//当前时间
- if(pattern == null || pattern.equals(""))
- pattern = "yyyy-MM-dd HH:mm:ss";
- SimpleDateFormat format = new SimpleDateFormat(pattern);
- return format.format(date);
- }
- /**
- * 功能:获取本周的开始时间
- * 示例:2013-05-13 00:00:00
- */
- private static Date getWeekStart() {// 当周开始时间
- Calendar currentDate = Calendar.getInstance();
- currentDate.setFirstDayOfWeek(Calendar.MONDAY);
- currentDate.set(Calendar.HOUR_OF_DAY, 0);
- currentDate.set(Calendar.MINUTE, 0);
- currentDate.set(Calendar.SECOND, 0);
- currentDate.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
- return (Date) currentDate.getTime();
- }
-
- /**
- * 功能:获取本周的结束时间
- * 示例:2013-05-19 23:59:59
- */
- private static Date getWeekEnd() {// 当周结束时间
- Calendar currentDate = Calendar.getInstance();
- currentDate.setFirstDayOfWeek(Calendar.MONDAY);
- currentDate.set(Calendar.HOUR_OF_DAY, 23);
- currentDate.set(Calendar.MINUTE, 59);
- currentDate.set(Calendar.SECOND, 59);
- currentDate.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
- return (Date) currentDate.getTime();
- }
-
- public static void main(String[] args) {
-
- out.println("本周第一天:" + getFormatDate(getWeekStart(),""));
-
- out.println("本周最后一天:" + getFormatDate(getWeekEnd(),""));
- }
- }
复制代码 虽然自己知道了Calandar中方法,但是对getWeekStart()和getWeekEnd()方法中的代码思路不是很懂,
我的看法是:获取到当前的时间,然后设置当前时间所在周的第一天和最后一天,还有就是设置第一天和最后一天的时间格式,第一天和最后一天的示例见代码注释
请各位黑马帮忙解释一下我这样理解对么?
|
|