2

我需要让用户从日历中选择一个日期,然后在控制台上显示选择的日期。

使用以下代码我可以显示一个日期时间选择器并接收选定的日期。当变量的类型是 String 时,它显示以下输出

2013-03-27T00:00:00+11:00

当变量类型为 Date 时,它​​显示以下输出

null

我怎样才能收到 yyyy-mm-dd 或 dd-mm-yyyy 的结果?所以应该是 2013-03-27 或 27-03-2013 我对使用 subStr 不感兴趣还有其他方法吗?

JSP

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%> 
<%@taglib uri="/struts-dojo-tags" prefix="sx" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <sx:head/>
        <title>JSP Page</title>
    </head>

....
<sx:datetimepicker name="Sdate"
                              label="MyDate"
                              displayFormat="dd-MMM-yyyy"
                              value="todayDate"/>
.....

班级

public class Datepicker{
      private String sdate;
     ... getter and setter go here ...
}
4

1 回答 1

2

这是错字问题

你的 JSP 包含sx:datetimepicker name="Sdate"这个应该是sx:datetimepicker name="sdate"

但财产在private String sdate;

您可以像这样在控制器中使用数据类型是日期private Date sdate;

编辑:

 String str = "2013-03-27T00:00:00+11:00";
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
        try {
            SimpleDateFormat parseFormatter = new SimpleDateFormat("yyyy-MM-dd");
            //SimpleDateFormat dt = new SimpleDateFormat("yyyyy-mm-dd hh:mm:ss+hh:mm"); 
            Date date = parseFormatter.parse(str);

            String formattedDate = formatter.format(date);
            System.out.println(formattedDate);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
于 2013-03-04T04:46:07.280 回答