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

来源:互联网 发布:淘宝怎么联系卖家售后 编辑:程序博客网 时间:2024/05/11 20:57

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>

freemarker前台功能实际调用:

 <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>

如图所示:


0 0