SimpleDateFormat formatter=
new SimpleDateFormat("yyyy MMM dd");
String dateNow = formatter.format(rs.getDate("ExpirationDate").getTime());
System.out.println("Date in String: "+dateNow);
expDate = formatter.parse(dateNow);
System.out.println("expDate: "+expDate);
以下是我尝试将日期格式化为2013 Apr 26
格式的代码。现在SimpleDateFormat#format
方法返回格式化的字符串,但我需要一个具有所需格式的java.util.Date
对象?是否有可能注意:实际上我需要日期对象,因为我必须在我的JSF页面上打印它,当我尝试在JSF上打印时,它显示了{{1}的defualt格式} java.util.Date
而我想要Mon Mar 04 00:00:00 PKT 2013
另一件事是我发现一个注释是Spring框架,它是2013 Apr 26
自己工作。在JSF 2.0中有任何类似这样的注释。
谢谢
答案 0 :(得分:3)
Date
类不存储有关格式化的任何信息。 Date
类基本上仅存在private long milliseconds
字段。您在打印Date
实例时看到的格式只是its javadoc中明确指定的默认toString()
格式。
在JSF上下文中,您需要<f:convertDateTime>
代码才能在模型中的Date
和HTML / HTTP中的String
之间进行转换。这可以在UIOutput
和UIInput
组件中使用。
<h:outputText value="#{bean.date}">
<f:convertDateTime pattern="yyyy MMM dd" />
</h:outputText>
...
<h:inputText value="#{bean.date}">
<f:convertDateTime pattern="dd-MM-yyyy" />
</h:inputText>
答案 1 :(得分:2)
没有格式化的Date对象。除了在toString方法中使用的格式之外,日期对象没有内在格式。您需要使用dateformat以特定方式格式化它们,就像您在问题中一样。
答案 2 :(得分:1)
你可以这样做:
public class MyDate extends Date{
public String toString(){
SimpleDateFormat formatter=
new SimpleDateFormat("yyyy MMM dd");
String dateNow = formatter.format(this.getTime());
String ans="";
ans+="Date in String: "+dateNow;
expDate = formatter.parse(dateNow);
ans+="\n"+"expDate: "+expDate;
return ans;
}
}
使用此功能,您可以使用MyDate,它将根据您的需要进行打印。
System.out.println(new MyDate());