У меня проблема с изменением текущего времени в миллисекунды, миллисекунды отображаются за месяц до установленной даты и времени. Я знаю, что компьютер начинает месяцы с 0, как я могу решить проблему? Сначала я переношу дату и время в String
, затем конвертирую String
в дату в SimpleDateFormat
, а затем конвертирую дату в Long
.
Например: когда пользователь вводит дату "2018/2/14 11:18" (AM), дата преобразуется в длинную "1515899940000" .
Вот мой код:
private void setDateField() {
Calendar c = Calendar.getInstance();
int yy = c.get(Calendar.YEAR);
int mm = c.get(Calendar.MONTH);
int dd = c.get(Calendar.DAY_OF_MONTH);
c.set(Calendar.MONTH, mm);
c.set(Calendar.DAY_OF_MONTH, dd);
c.set(Calendar.YEAR, yy);
DatePickerDialog datePickerDialog = new DatePickerDialog(this,android.R.style.Theme_Holo_Light_Dialog ,new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int selectedYear, int selectedMonth, int selectedDate) {
year = selectedYear;
month = selectedMonth;
day = selectedDate;
date_time = year + "/" + (month + 1) + "/" + day;
timePicker();
}
},year, month, day);
datePickerDialog.getDatePicker().setMinDate(c.getTimeInMillis());
datePickerDialog.show();
}
private void timePicker(){
// Get Current Time
final Calendar c = Calendar.getInstance();
hours = c.get(Calendar.HOUR_OF_DAY);
minutes = c.get(Calendar.MINUTE);
// Launch Time Picker Dialog
TimePickerDialog timePickerDialog = new TimePickerDialog(this,android.R.style.Theme_Holo_Light_Dialog,new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,int minute) {
hours = hourOfDay;
minutes = minute;
string_date = date_time+" "+format(hours) + ":" +format(minutes) ;
addtime.setText(string_date);
Log.e("JEJEJEJE",string_date);
SimpleDateFormat f = new SimpleDateFormat("yyyy/mm/dd HH:mm");
try {
Date d = f.parse(string_date);
milliseconds = d.getTime();
Log.e("LONGGGGGGG", String.valueOf(milliseconds));
} catch (ParseException e) {
e.printStackTrace();
}
}
}, hours, minutes, true);
timePickerDialog.show();
}
SimpleDateFormat
и друзей и добавить ThreeTenABP в свой проект Android, чтобы использоватьjava.time
, современный API даты и времени Java. С ним намного приятнее работать. - person Ole V.V.   schedule 13.02.2018