1

私は長い時間から時間を取得し、時間から長くなるコードを書いています。実行中は、長い時間から適切な日時を取得できません。この問題を解決するのを手伝ってくれませんか。

TimeConverterUtil.java

    import java.text.SimpleDateFormat;
    import java.util.Date;


    public class TimeConverterUtil
    {
        public static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        public static SimpleDateFormat usrFormatter = new SimpleDateFormat("dd MMM yy, HH:mm:ss:ms");

        public static String getDateTime(Long stamp)
        {
              Date date = new Date(stamp);
              return formatter.format(date);
        }
        public static Long getTimestamp(String date)
        {
            Date lFromDate1;
            try {
                lFromDate1 = usrFormatter.parse(date);
                return lFromDate1.getTime(); 
            }
            catch (Exception e)
            {
                e.printStackTrace();
                return null;
            }
        }
    }

テスト プログラム:

TCTester.java

//$Id$

public class TCTester {

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        Long timeInLong = TimeConverterUtil.getTimestamp("28 Mar 13, 02:14:02:000");
        System.out.println(TimeConverterUtil.getDateTime(timeInLong));

        System.out.println("\n\n\n"+TimeConverterUtil.getTimestamp("28 Mar 13, 02:14:02:000"));
    }

}
4

1 に答える 1

3

問題は、入力フォーマット文字列のミリ秒部分にあります。次の形式があります。

"dd MMM yy, HH:mm:ss:ms"

ただしms、「ミリ秒」ではなく「分、次に秒」として解釈されています。あなたがしたい:

"dd MMM yy, HH:mm:ss:SSS"

出力フォーマット文字列にミリ秒を含めていないことに注意してください。そのため、情報の一部はとにかく失われます。

また、秒とミリ秒の間に「:」を使用するのは奇妙であることに注意してください。「.」を使用する方がより一般的であるため、入力は"28 Mar 13, 02:14:02.000".

于 2013-03-30T09:22:02.083 に答える