0

我正在使用带有 jquery 日期选择器的 struts2.x。
我想以 dd/mm/yyyy 格式显示。但是从数据库中获取它时就像yyyy-mm-dd一样。然后我将它转换为所需的格式,但类型是字符串。所以接下来我将其转换为日期类型。但是格式变了。

Date getRiskCommDate()
{
String fString = null;
System.out.println("Coming Date from DB"+riskCommDate);
if(riskCommDate!=null)
{
SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern("dd/MM/yyyy");
fString = format.format(riskCommDate);
}
System.out.println("Formated Date in  String Form "+fString);
Date d = new Date(fString);
System.out.println("Formated Date in Date form Date "+d);
return d;  
}  

输出 :

来自 DB 的日期 2012-07-04
字符串形式的
格式化日期 04/07/2012 日期形式的格式化日期 Date Sat Apr 07 00:00:00 IST 2012

任何想法都受到高度赞赏。

4

3 回答 3

4

该类java.util.Date没有任何属性来保存格式。

要以自定义格式显示 的值Date,请调用 上的format方法SimpleDateFormat

当你这样做时:

System.out.println(dateInstance)

…您只是toString()Date. String该方法在版本中以固定格式返回日期。

根据评论

如果您无论如何想要带有日期实例的自定义格式,那么您可以创建一个自定义类包装日期实例

class MyDate{
  private Date date;
  //provide appropriate accessor
  //override toString() method to support required output
}

或者extend Date

class MyDate extends Date{
   //override toString() method to support required output
   @Override
   public String toString(){
        //convert `this` to  String with required format with the help of `SimpleDateFormat`
   }
}
于 2012-07-05T07:17:13.047 回答
2

日期打印基于区域设置的格式。它不会“记住”你给它想要你构建它的格式。只有字符串具有特定格式,因此如果需要,请将其保留为字符串。

于 2012-07-05T07:18:25.717 回答
0
于 2016-04-04T19:05:11.817 回答