0

この問題を検索しましたが、文字列から日付に変更し、日付を文字列に表示するだけであることがわかりました。日付を文字列形式で受け取り、それを日付オブジェクトで解析してデータベースに入力する必要がありますが、文字列を日付に変換するたびに間違った出力が得られます。提案してください。前もって感謝します。

String subscribedDate="2012-09-28 11:00:00";
String oldFormat = "yyyy-mm-dd hh:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
Date dates=sdf1.parse(subscribedDate);
System.out.println(dates);
//code for entering dates in database. 

出力: Sat Jan 28 00:09:00 GMT 2012 (これは正しくありません!!)。2012-09-28 11:00:00 として欲しい

4

5 に答える 5

6

フォーマット文字列が間違っています。 yyyy-mm-dd hh:mm:ss基本的には、「年-分-日 時間:分:秒」と言っていますが、これはあなたが望んでいないと確信しています。

あなたがしたい

String oldFormat = "yyyy-MM-dd hh:mm:ss";

詳細については、SimpleDateFormatドキュメントをご覧ください。

于 2012-10-02T11:16:42.773 に答える
3

まず、月のフィールドは分ではMMなく、を使用して表さmmれます。

次に、フォーマッタを使用して、日付を目的の形式で出力できます。

String subscribedDate="2012-09-28 11:00:00";
String oldFormat = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
Date dates=sdf1.parse(subscribedDate);
System.out.println(sdf1.format(dates));
// code for entering dates in database. 
于 2012-10-02T11:17:01.760 に答える
1

oldFormat をに変更してみてください

String oldFormat = "yyyy-MM-dd hh:mm:ss";

ここで、MM は大文字です。

于 2012-10-02T11:16:00.913 に答える
1

2行目のoldFormat変数は

oldFormat = "yyyy-MM-dd HH:mm:ss"; // hours counted 0~23

また

oldFormat = "yyyy-MM-dd hh:mm:ss"; // hours counted 0~11
于 2012-10-02T11:20:04.827 に答える
0

これを試して:

        String oldFormat = "yyyy-MM-dd hh:mm:ss";

理由については、ドキュメントを参照してください。

于 2012-10-02T11:16:30.367 に答える