проблема с простой процедурой разбора - PullRequest
0 голосов
/ 20 августа 2010

эта проблема убивает меня, вот мой код

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, чтобы преобразовать его обратно в строку.когда я пытаюсь сериализовать дату «12/12/2010 12:20:34 PM» из моего xml, это результат, который я получаю

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

почему мои годы и минуты не такие, какими они должны быть?Кажется, что каждый раз, когда функция синтаксического анализа называется выводом, она должна быть изменена.это довольно простая вещь, почему она не работает?Я мог бы понять, что часы не так с разницей часовых поясов, но годы и минуты?

1 Ответ

1 голос
/ 20 августа 2010

Вам нужно m (строчные буквы) в течение нескольких минут, а не M.Подробнее см. здесь .

...