私の Android アプリには、2012 年 7 月 4 日の場合は 201274、2012 年 10 月 16 日の場合は 20121016 のようにフォーマットされた日付を持つデータベースがあります。 2012-10-16 を表示します。コードは次のようになります。
private void convertDBdate() {
convertDateTextView.setText(gotDt);
String dateStr = convertDateTextView.getText().toString();
SimpleDateFormat inputFormatter = new SimpleDateFormat("yyyyMd");
SimpleDateFormat outputFormatter = new SimpleDateFormat("yyyy-MM-dd");
try {
DBdate = inputFormatter.parse(dateStr);
dashDateStr = outputFormatter.format(DBdate);
convertFinalDateTV.setText(dashDateStr);
} catch (ParseException e ) {
e.printStackTrace();
}
このコードでは、201274 は 2012-07-04 として正しく表示されますが、2 桁の月が正しく表示されず、20121016 は 2012-01-16 (1 月 16 日) と表示されます。問題は MM と dd にあります。出力日付形式として yyyy-M-dd を試しましたが、2012-1-16 (再び 1 月 16 日) が表示されます。
どういうわけかM値を分離して、その月+ 1のことをしなければなりませんか? もしそうなら、それはどのように書かれ、どこに行きますか?
2012 年 7 月 4 日のデータベースの日付を 20120704 に書き換える必要はありません。コードで修正できるようにしたいと考えています。