Я работаю над Android-приложением, в котором я хотел бы сохранить дату и время, введенные пользователем в java.sql.timestamp, и сохранить его. Когда вы снова показываете пользователю, я хотел бы преобразовать его обратно в формат «dd-MM-YYYY» и «HH: MM» отдельно. Мне удалось установить записи, полученные от пользователя, до года, месяца, дня, часа, минуты в отдельных переменных и даже попытаться получить время, но экземпляр календаря всегда возвращает мне текущую дату и время. Я не знаю, что я делаю неправильно. Пожалуйста, дайте мне знать.Android: Преобразование данных с даты, выбор времени из Календаря в sql Временная отметка и обратная.
Android код:
Button menuStartDate, menuStartTime;
EditText startDateTextField, startTimeTextField;
int monthOfYear, dayOfWeek, hourOfADay, minuteOfHour, year;
private Calendar startCalendar;
@Override
public void onClick(View view) {
if (view == menuStartDate) {
startCalendar = Calendar.getInstance();
year = startCalendar.get(Calendar.YEAR);
monthOfYear = startCalendar.get(Calendar.MONTH);
dayOfWeek = startCalendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
startDateTextField.setText(dayOfMonth + "-"
+ (monthOfYear + 1) + "-" + year);
}
}, year, monthOfYear, dayOfWeek);
datePickerDialog.show();
startCalendar.set(Calendar.MONTH, monthOfYear);
startCalendar.set(Calendar.YEAR, year);
startCalendar.set(Calendar.DAY_OF_MONTH, dayOfWeek);
}
if (view == menuStartTime) {
startCalendar = Calendar.getInstance();
hourOfADay = startCalendar.get(Calendar.HOUR_OF_DAY);
minuteOfHour = startCalendar.get(Calendar.MINUTE);
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
startTimeTextField.setText(hourOfDay + ":" + minute);
}
}, hourOfADay, minuteOfHour, false);
timePickerDialog.show();
startCalendar.set(Calendar.HOUR_OF_DAY, hourOfADay);
startCalendar.set(Calendar.MINUTE, minuteOfHour);
}
Как вы можете видеть в приведенном выше случае, я получаю информацию от пользователя, и установить его. К сожалению, я не могу установить время, заданное пользователем в Календаре. Вот код для преобразования:
if(view == submitMenuButton){
MenuCard menuCard = new MenuCard();
if(!(startDateTextField.getText().toString().length()<1)){
if(!(startTimeTextField.getText().toString().length()<1)){
Timestamp timestamp = new Timestamp(startCalendar.getTimeInMillis());
Log.d("TImestamp is",timestamp.toString());
} else {
startTimeTextField.setError("Please select start time");
}
}else {
startDateTextField.setError("Please select start date");
}
}
Что я делаю неправильно? Любая помощь будет приятной. Благодарю.
затем используйте dateformatter и разделите дату sqlite на дату и время, используя два разных форматирования – Pavya