2013-03-04 75 views
2

我需要讓用戶從日曆中選擇一個日期,然後在控制檯上顯示選定的日期。如何更改datatimepicker結果的格式?

設計下面的代碼我可以顯示一個datetimepicker並接收選定的日期。當變量的類型是字符串它顯示以下輸出

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

當變量的類型是日期它顯示以下輸出

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 ... 
} 
+0

看到我在anwser編輯解析字符串perticular格式 – NPKR 2013-03-04 04:56:06

回答

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(); 
     } 
+0

但正如我在這個問題解釋它顯示的日期但我只需要更改其格式 – 2013-03-04 04:47:24

+0

將格式化程序對象更改爲此SimpleDateFormat格式化程序 \t \t = new SimpleDateFormat(「dd-MM-yyyy」); – NPKR 2013-03-04 05:37:03

+0

我正在'27 - 三月-2013'。我可以得到月份的序列號嗎?那是代替Mar,我需要03。 – Pawan 2014-12-24 05:29:36