시스템 로캘에 따라 Date
의 형식을 지정하려고합니다. 내가 DateFormat
을 사용할 수 있다는 것을 알고 있지만, 제대로 이해하지 못하는 것 같습니다! 나는 또한 SimpleDateFormat
을 시도했으나 로케일을 존중하지 않으며 대부분은 사용되지 않습니다!DatePicker 형식 날짜가 시스템 로캘
다음은 현재 코드입니다. EditText
에 포커스가있을 때 DatePickerDialog
이 표시됩니다. 피드백 보내기 원인 DateFormat
null을 반환하기 때문에이 문제는 NullPointerException
발생합니다!
내가 뭘 잘못하고 있니? 아무도 도와주지 못하니?
public void onFocusChange(View v, boolean hasFocus) {
if (v == txtDate) {
if (hasFocus == true) {
// Process to get Current Date
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
// Launch Date Picker Dialog
DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// Display Selected date in edit text
String selectedDate = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = sdf.parse(selectedDate);
} catch (ParseException e) {
// handle exception here !
}
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(activityname.this);
String s = dateFormat.format(date);
txtDate.setText(s);
}
}, mYear, mMonth, mDay);
dpd.show();
}
}
}
빠른 답장을 보내 주셔서 감사합니다. 간단하게 들리지만 나는 여전히 투쟁합니다. 나는 이것을 지금 가지고있다.'Date date = new Date(); DateFormat 형식 = DateFormat.getDateInstance(); formatted = format.format (date); txtDate.setText (formatted);''getDateInstance()'는 DateFormat 유형에 대해서는 정의되지 않았고, DateFormat 유형의'format'은 인수에 적용되지 않습니다 (Date) – sascha
잘못된'DateFormat'을 사용하고 있기 때문입니다. 'DateFormat'이라는 클래스가 여러 개 있습니다. 파일 상단에서 가져 오기를 확인하십시오. 필요한 것은'import java.text.DateFormat;'입니다. –
그 트릭을 했어! 'import android.text.format.DateFormat;'이 TimePicker'DateFormat.is24HourFormat (this)'에 대해 사용하고 있는데, 이것은 java가 아닌 DateFormat 가져 오기를 제거해야만했던 것과 같은 문제로 더 이상 작동하지 않습니다. . 둘 다 가질 수는 없지, 그렇지? 괜찮으 시다면'DateFormat.is24HourFormat (this)'에 대한 제안도 있으십니까? – sascha