hsz*_*hsz 15 java date simple-framework
我收到一个XML响应,其属性包含以下值:
Wed Sep 05 10:56:13 CEST 2012
Run Code Online (Sandbox Code Playgroud)
我在我的模型类中定义了一个带注释的字段:
@Attribute(name = "regDate")
private Date registerDate;
Run Code Online (Sandbox Code Playgroud)
但是它引发了一个例外:
java.text.ParseException: Unparseable date: "Wed Sep 05 10:56:13 CEST 2012" (at offset 0)
Run Code Online (Sandbox Code Playgroud)
是否可以在SimpleFramework
注释中定义日期格式?
该日期字符串应包含哪种格式?
oll*_*llo 36
SimpleXML只支持一些DateFormat
:
(有关每个字符的含义,请参阅SimpleDateFormat API Doc(Java SE 7))
但是,可以编写Transform
处理其他格式的自定义:
public class DateFormatTransformer implements Transform<Date>
{
private DateFormat dateFormat;
public DateFormatTransformer(DateFormat dateFormat)
{
this.dateFormat = dateFormat;
}
@Override
public Date read(String value) throws Exception
{
return dateFormat.parse(value);
}
@Override
public String write(Date value) throws Exception
{
return dateFormat.format(value);
}
}
Run Code Online (Sandbox Code Playgroud)
@Attribute(name="regDate", required=true) /* 1 */
private Date registerDate;
Run Code Online (Sandbox Code Playgroud)
注1: required=true
是可选的
// Maybe you have to correct this or use another / no Locale
DateFormat format = new SimpleDateFormat("EE MMM dd HH:mm:ss z YYYY", Locale.US);
RegistryMatcher m = new RegistryMatcher();
m.bind(Date.class, new DateFormatTransformer(format));
Serializer ser = new Persister(m);
Example e = ser.read(Example.class, xml);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4387 次 |
最近记录: |