+-
java日期操作【持续更新中……】



//1、得到系统当前时间:

java.util.Date dt=new java.util.Date();
System.out.print(dt);  //输出结果是:Wed Aug 10 11:29:11 CST 2005

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.print(sdf.format(dt));  //输出结果是:2005-08-10

//2、jstl标签 对日期格式化,按后面的格式进行输出:<fmt:formatDate value="${…}" pattern="yyyy-MM-dd" />

//输出的结果为pattern的格式(格式可以自定义yyyy年MM月日)

//3、Calendar 类获得下个星期六  

    Calendar   cal   =   Calendar.getInstance();  

    cal.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY); 

    cal.add(Calendar.WEEK_OF_YEAR,1);

//4、Calendar 类获得上个星期天 

  Calendar   cal   =   Calendar.getInstance();   
  cal.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);   
  cal.add(Calendar.WEEK_OF_YEAR,-1); 

//5、根据月份取得当月第一天之前的(包括当天)的第一个星期六(公司eoa项目中加载月报用)

  public static Date getFirstSatudayOfMonth(int year, int month) {
       Calendar cal = GregorianCalendar.getInstance();
       cal.set(year, month, 1);(获得的值为年份、月份)
       //cal.setTime(date);可以换成给定的日期则得到给定日期的星期六的日期
       cal.setFirstDayOfWeek(Calendar.SATURDAY);
       cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
       return cal.getTime();


 }

// 6、String类型转换为日期类型:
   利用org.apache.commons.lang.time.DateUtils
   String oec_date = "2008-07-15";
   Date select_day = DateUtils.parseDate(oec_date, new String[] { "yyyy-MM-dd" });
   转成日期的类型

//7、日期相减平分横坐标:(在生成柱状图和折线图时用)
 Long date_st_num = date_st.getTime();
 Long date_en_num = date_en.getTime();
 Long date_minus = date_en_num - date_st_num;

//8、日期相减(两日期相差多少天,月,年):

 Date d1 = DateUtils.parseDate(sd1, new String[] { "yyyy-MM-dd" });
 Date d2 = DateUtils.parseDate(sd2, new String[] { "yyyy-MM-dd" });
 long duration = d2.getTime() - d1.getTime();

      利用org.apache.commons.lang.time.DurationFormatUtils类
 DurationFormatUtils.formatPeriod(d1.getTime(), d2.getTime(), "d")
 DurationFormatUtils.formatPeriod(d1.getTime(), d2.getTime(), "M")
 DurationFormatUtils.formatPeriod(d1.getTime(), d2.getTime(), "y")
      和org.apache.commons.lang.time.DateUtils类
 DurationFormatUtils.formatDuration(duration, "d")
 DurationFormatUtils.formatDuration(duration, "M")//可能不行
 DurationFormatUtils.formatDuration(duration, "y")//

可能不行 
//9、日期相加或者减,判断日期是否相等(个人觉得非常的实用)
  利用org.apache.commons.lang.time.DateUtils
    日期相加或者减
    cur_week_friday = 星期五
    DateUtils.addDays(cur_week_friday, -7)结果为上个星期五的日期,减了7天
    日期是否相等
    DateUtils.isSameDay(日期1, 日期2)返回true或者false

2008年09月26日

// 10、当前月的第一天和最后一天
 Calendar now = Calendar.getInstance();
  int curtYear = now.get(Calendar.YEAR);
  now.set(curtYear, 0, 1);
  Date first_day_month1_year = now.getTime();// 每年1月第一天
  now.set(curtYear, 1, 1);
  Date first_day_month2_year = now.getTime();// 每年2月第一天
  if (today.before(first_day_month2_year)
    && (today.after(first_day_month1_year) || DateUtils.isSameDay(today, first_day_month1_year))) {
   dynaBean.set("showBase", "true");// 显示单位基本情况
  }