我的Android应用程序中的日期时间错误

时间:2011-08-03 12:02:30

标签: android

HIHO  有人可以告诉我为什么这些代码不能正常工作吗?

private Calendar dateTime = Calendar.getInstance();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.eintragen);
    this.dh = new DataHelper(this);

    EditText Datum = (EditText) findViewById(R.id.et_meerwasser_wasserwerte_eintragen_datum);
    Datum.setText(dateTime.get(Calendar.DAY_OF_MONTH)+"."+dateTime.get(Calendar.MONTH)+"."+dateTime.get(Calendar.YEAR));
}

每次我启动应用程序时都会告诉我:03.7.2011 但实际日期是03.08.2011

我重新启动手机并取下电池

亲切的问候 亚历

2 个答案:

答案 0 :(得分:2)

这是因为Month将被视为0而不是1。 尝试像这样修改你的代码,

private Calendar dateTime = Calendar.getInstance();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.eintragen);
this.dh = new DataHelper(this);

EditText Datum = (EditText) findViewById(R.id.et_meerwasser_wasserwerte_eintragen_datum);
Datum.setText(dateTime.get(Calendar.DAY_OF_MONTH)+"."+dateTime.get((Calendar.MONTH)+1)+"."+dateTime.get(Calendar.YEAR));

}

因此,您必须将月份的值增加1才能获得当前月份。

答案 1 :(得分:1)

在月份中添加+1。因为月份从0开始,而不是在此CalendarSo中为1,因此1月份您将获得0而不是1。

Datum.setText(dateTime.get(Calendar.DAY_OF_MONTH)+"."+(dateTime.get(Calendar.MONTH)+1)+"."+dateTime.get(Calendar.YEAR));
}