这个问题正在扼杀我,这是我的代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Converter
{
// 8/12/2010 12:20:34 PM
static String DATE_FORMAT = "MM/dd/yyyy h:MM:ss aa";
// from object to xml
public static String serializeNCCDate(Date d)
{
try
{
System.out.println("serializeNCCDate");
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
System.out.println("in from object: " + d.toLocaleString());
String s = sdf.format(d);
System.out.println("out to object: " + s);
return s;
} catch (Exception ex)
{
return null;
}
}
// from xml to object
public static Date deSerializeNCCDate(String s)
{
try
{
System.out.println("deSerializeNCCDate");
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
System.out.println("in from xml: " + s);
Date d = sdf.parse(s);
System.out.println("out to object: " + d.toLocaleString());
return d;
} catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
然后运行我的测试我将xml文档放入我的xml引擎(jibx)以转换为对象,然后将对象放回jibx以将其转换回字符串。当我尝试从我的xml序列化日期“8/12/2010 12:20:34 PM”时,这是我得到的结果
deSerializeNCCDate
in from xml: 8/12/2010 12:20:34 PM
out to object: Aug 12, 2011 12:00:34 PM
serializeNCCDate
in from object: Aug 12, 2011 12:00:34 PM
out to object: 08/12/2011 12:08:34 PM
为什么我的年份和时间不是他们应该的?似乎每次调用parse函数时都应该更改它的输出。这是非常简单的东西,为什么它不起作用?我能理解时区差异的时间,但是年份和分钟?