i am using following code. When i press an editText, it shows a calender and set the date.
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
}
};
private void updateDisplay()
{
int cmpYear ;
int cmpMonth ;
int cmpDay;
final Calendar c = Calendar.getInstance();
cmpYear = c.get(Calendar.YEAR);
cmpMonth = c.get(Calendar.MONTH);
cmpDay = c.get(Calendar.DAY_OF_MONTH);
if (cmpMonth == mMonth && cmpYear == mYear && cmpDay == mDay)
date.setText("Today");
else if (cmpMonth == mMonth && cmpYear == mYear && cmpDay == (mDay - 1))
date.setText("Yesterday");
else
{
date.setText(
new StringBuilder()
// Month is 0 based so add 1
.append(mDay).append("-")
.append(mMonth + 1).append("-")
.append(mYear).append(" "));
}
java.util.Date today = new java.util.Date();
long t = today.getTime();
java.sql.Date dt = new java.sql.Date(t);
dt.setYear(mYear);
dt.setMonth(mMonth);
dt.setDate(mDay);
transaction.transactionDateTime = dt;
}
//HERE IS THE PROBLEM, mYear , mMonth , mDay shows correct values of 1,3,2012 but when i set them here in dt, dt saves mYear as 3079 not 2012.
Please tell me how can i fix this date problem
Best REGARDS
I’m surprised it’s giving you 3079 rather than 3912, which is what I’d expected given how
Date.setYearis documented:Note that this is a deprecated method – you really shouldn’t be using it.
Use
Calendarfor your calendar calculations, and then find the appropriate instant in time by callingcalendar.getTime(). You can construct ajava.sql.Datefrom that.(Ideally, you’d use Joda Time instead, but that might be too big a dependency for you in an Android app.)