您的位置:首页 > 编程语言 > Java开发

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

2016-07-17 09:19 399 查看
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>

如图所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息