我的 Android 应用程序中有一个数据库,其日期格式如下:201274 表示 2012 年 7 月 4 日,20121016 表示 2012 年 10 月 16 日。我使用 SimpleDateFormat 显示 DB 行的日期,以便今天它获取日期 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,但两位数月份显示不正确,20121016 显示为 2012-01-16(1 月 16 日)。问题出在MM和dd。我已尝试将 yyyy-M-dd 作为输出日期格式,但显示为 2012-1-16(同样是 1 月 16 日)。
我是否必须以某种方式隔离 M 值并做那个月 + 1 件事?如果是这样,那将如何写,它会去哪里?
我不想将数据库中的日期重写为 2012 年 7 月 4 日的 20120704,我希望能够在代码中修复它。