【在jsp里如何把时间戳转换成日期格式? _时间转换(C标签) 】 | IT修真院·坑乎
问题已收录 在jsp里如何把时间戳转换成日期格式?
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(2)
时间转换(C标签)
详细描述
错误截图
编辑于2024-11-24
  • [武汉|结业弟子]JAVA-谭道霄
    0

    我看别人要写一个类来转换,觉得很麻烦。我是使用jstl实现转换的

    编辑于2018-03-17
  • [北京|结业弟子]JAVA-廖友
    0

    如上面所述,可以使用jstl库,如果你想感受一下自定义标签,你也可以自己写一个

    标签类

    /*

    此标签有两个作用,一是将传入的long类型时间转换为字符串类型时间;

    二是当不传入时间时,自动获取当前系统时间。

     */


    public class DateTagSimple extends SimpleTagSupport{

    private Long value;

    /*

    要在标签中使用EL表达式,有如下步骤:

    1、将属性的对象类型type设为Object,rtexprvalue设为true (关于在tld设为Object类型问题,貌似关系不大,即使是long,int,甚至是默认的String都行)

    2、在set方法中执行如下evaluate方法并进行类型的转换

    */

    public void setValue(Object value) throws JspException {

    this.value = Long.parseLong((String) ExpressionEvaluatorManager.evaluate("value",value.toString(),Object.class,(PageContext)getJspContext()));

    }

    @Override

    public void doTag() {

    // 实例化日期转换类并设置日期格式

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    if(value != null){

    Date date = new Date(value);

    String stringTime = simpleDateFormat.format(date);

    try {

    // 获取当前JspContext对象并将值传递给它然后输出

    getJspContext().getOut().println(stringTime);

    } catch (IOException e) {

    e.printStackTrace();

    }

    } else{

    Date date = new Date();

    String stringTime = simpleDateFormat.format(date);

    try {

    getJspContext().getOut().println(stringTime);

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    }


    tld文件

    <taglib>

        <tlib-version>1.0</tlib-version>

        <jsp-version>2.0</jsp-version>

        <short-name>DateAndFormat</short-name>

        <tag>

            <name>date_s</name>

            <tag-class>com.sun.utils.DateTagSimple</tag-class>

            <body-content>empty</body-content>

            <attribute>

                <name>value</name>

                <type>java.lang.Object</type>

                <rtexprvalue>true</rtexprvalue>

                <description>若value为null,则使用当前时间,否则进行Long到String类型时间转换</description>

            </attribute>

        </tag>

    </taglib>


    在Jsp中使用

    <%@page pageEncoding="UTF-8" isELIgnored="false" %>

    <%@taglib uri="/WEB-INF/tld/dateTagSimple.tld" prefix="ds"%>


    当前系统时间:<ds:date_s/>


    使用EL表达式

    <ds:date_s value="${xxx}"/>


    编辑于2018-09-29