2

Javaで単純な文字列から日付への変換を行おうとしています。いくつかのログから日付をスキミングしていて、処理を行うために日付に変換する必要があります。通過する日付は次のようになります。

2012-09-07 19:53:33

私のコードでは、これをDateオブジェクトに変換しようとすると、まったく異なる日付が取得されます。私のコードは次のようになります:

String taskStart = "2012-09-07 19:53:33";  
String dateFormat = "yyyy-MM-dd hh:MM:ss";
SimpleDateFormat dateFormat=new SimpleDateFormat(format);
Date taskStartDate = dateFormat.parse(taskStart); 

私が得る出力はこれです:

Sat May 07 19:00:27 PDT 2016

元の日付を正しい形式に単純に変換するにはどうすればよいですか?

4

5 に答える 5

8
  1. MM(月の年) を 2 回指定しました。「分」の m は小文字でなければなりません。
  2. 24 時間ベースの時刻を取得している場合は、 の範囲で指定された時間を取得するために指定する必要がありますHH。時刻文字列の一部)0-23hh1-12
  3. Finally, your example code doesn't define the format variable that you're passing into the constructor for your SimpleDateFormat object. In fact, you're using the variable name dateFormat twice and not defining the format variable at all - at least not according to the code that you included in the question.

So, your proper format string, I believe, should be...

"yyyy-MM-dd HH:mm:ss"

...and the full, proper code example would be:

String taskStart = "2012-09-07 19:53:33";  
String format = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat dateFormat=new SimpleDateFormat(format);
Date taskStartDate = dateFormat.parse(taskStart); 
于 2012-09-07T20:07:34.897 に答える
3

SimpleDateFormatのドキュメントによると、0 ~ 23 の形式の時間には大文字の「H」を使用する必要があります。また、分は小文字の「m」で表します。

String dateFormat = "yyyy-MM-dd HH:mm:ss";
于 2012-09-07T20:06:03.200 に答える
2

日付関数Stringを使用して、日付出力をフォーマットに再度変換する必要があると思います。formatter.format

Date formatter=new SimpleDateFormatter("yy-MM-dd HH mm ss")

String s=formatter.format(taskStartDate)
于 2012-10-20T11:28:25.617 に答える
0

dateFormat 定義を次のように変更してみてください。

String dateFormat = "yyyy-MM-dd HH:mm:ss"; 

あなたの時間では、HHは0-23を大文字にし、mmは分を小文字にする必要があることに注意してください.

于 2012-09-07T20:09:44.567 に答える
0

"yyyy-MM-dd hh:MM:ss";

MMそして、mmそれぞれ月と分です.....

だからそれは...

"yyyy-MM-dd hh:mm:ss";

于 2012-09-07T20:10:16.877 に答える