简单解析例程的问题

时间:2010-08-19 20:34:13

标签: java datetime

这个问题正在扼杀我,这是我的代码

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函数时都应该更改它的输出。这是非常简单的东西,为什么它不起作用?我能理解时区差异的时间,但是年份和分钟?

1 个答案:

答案 0 :(得分:1)

分钟需要m(小写),而不是M。有关详细信息,请参阅here