天天看点

freemarker函数功能的使用之时间处理

freemarker函数功能的使用之时间处理

java后台功能部分:

1、格式化时间格式

public static String formatDate(Date date) {
         formatter.setTimeZone(TimeZone.getDefault());
         formatter.applyPattern("yyyy-MM-dd HH:mm:ss");
         formatter.setLenient(false);
         return adjust(formatter.format(date));
     }


     public static String formatDate(Date date, String patter) {
         formatter.setTimeZone(TimeZone.getDefault());
         formatter.applyPattern(patter);
         formatter.setLenient(false);
         return adjust(formatter.format(date));
     }2、取得两个日期段的日期间隔
  /**
      * 取得两个日期段的日期间隔
      *
      * @param d1 日期1
      * @param d2 日期2
      * @return t2 与t1的间隔天数
      */
     private static int getBetweenDays(Date d1, Date d2) {
         if (d1 == null || d2 == null) {
             return -1;
         }
         int betweenDays;
         Calendar c1 = Calendar.getInstance();
         Calendar c2 = Calendar.getInstance();
         c1.setTime(d1);
         c2.setTime(d2);
         // 保证第二个时间一定大于第一个时间
         if (c1.after(c2)) {
             c2.setTime(d1);
             c1.setTime(d2);
         }
         int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
         betweenDays = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);
         for (int i = 0; i < betweenYears
                 ;
              i++) {
             c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1));
             betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR);
         }
         return betweenDays;
     }   /**
      * 取得两个日期段的日期间隔
      *
      * @param t1 时间1
      * @param t2 时间2
      * @return t2 与t1的间隔天数
      */
     public static int getBetweenDays(String t1, String t2) {


         Date d1 = parseDate(t1);
         Date d2 = parseDate(t2);
         return getBetweenDays(d1, d2);
     }      

freemarker前台功能定义:

1、获取当前时间,格式为yyyy-MM-dd

<#function formatDate date="" pattern="yyyy-MM-dd">
     <#if date?is_date>
         <#return statics["com.dm.core.util.DateUtil"].formatDate(date,pattern)/>
         <#else>
             <#return ""/>
     </#if>
 </#function>      

2、取得两个日期段的日期间隔

<#function getBetweenDays date1="" date2="">
         <#return statics["com.dm.core.util.DateUtil"].getBetweenDays(date1,date2)/>
 </#function>      
<li style="list-style-type:circle;color:#000000; margin-left:20px;">
                                      <span style="display:block;height:24px;float:right;color:blue;">[<@dateMonthOut item.wa_postdate/>
                                          ]</span>
                                     <span class="news_title">
                                     <a href="${path}/web/article_newsViewA.do?wa_id=${(item.wa_id)!}"
                                        target="_blank">${ellipsis(item.wa_title,28)}</a>
                                          <#if getBetweenDays(formatDate(item.wa_postdate),getNow("yyyy-MM-dd"))<=3>
                                             <img src="${path}/website/images/newnail.png"/>
                                         </#if>
                                     </span>
                                  </li>