指定された文字列を解析してタイムスタンプにするのに問題があります。 ミリ秒が間違って解析されるか、何か不足している場合はお知らせください。Java:文字列からタイムスタンプに変換するときにミリ秒が間違って解析される
私のようにリクエストから文字列を取得:
String selectedTimeStamp = request.getParameter("selectTime");
System.out.println("selectedTimeStamp: "+selectedTimeStamp);
、その後、私は文字列を解析してフォーマットするのSimpleDateFormatを使用します。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US);
Date parsedDate = sdf.parse(selectedTimeStamp);
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
System.out.println("createdTime: " +timestamp);
私が手出力は次のようになります。
selectedTimeStamp: 2016-07-04 21:09:47.66
createdTime: 2016-07-04 21:09:47.066
なぜミリ秒が66から066に変換されるのか分かりませんか?それは660 任意のアイデアをする必要がありますか?
「SSS」はミリ秒を意味するため、「66」は66ミリ秒として解析されます。 – Andreas
新しいJava 8の時間APIは、 'SSS'を秒数として解釈するので、' SSS'ではなく 'SS'を指定したパターンであれば' .66'入力をうまく処理できます。 – Andreas