0
在我的应用程序的一部分中,用户需要选择和开始和结束事件的时间,所以我显示两个连续的选择器,以便用户可以选择开始/结束的日期/时间,但问题是总是会在最终结果中添加一天。DateTime选取器对话框将添加一天到我选择的日期
这里是我的代码:
private Date FechaInicio, FechaFin;
private Calendar myCalendar = Calendar.getInstance();
private Calendar myCalendarEnd = Calendar.getInstance();
private long epochTimeStart, epochTimeEnd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nuevo_xxxxx_step3);
//First Date picjer that have the listener dateStart
new DatePickerDialog(xxxxx.this, dateStart, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DATE)).show();
}
//Start date listener
DatePickerDialog.OnDateSetListener dateStart = new DatePickerDialog.OnDateSetListener(){
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DATE, dayOfMonth);
//Start de time picker for startdate
new TimePickerDialog(xxxxx.this,timeStart,myCalendar.get(Calendar.HOUR),myCalendar.get(Calendar.MINUTE),false).show();
}
};
//Time picker dialog for starTime
TimePickerDialog.OnTimeSetListener timeStart = new TimePickerDialog.OnTimeSetListener(){
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
myCalendar.set(Calendar.HOUR, hourOfDay);
myCalendar.set(Calendar.MINUTE,minute);
epochTimeStart = myCalendar.getTimeInMillis();
//Start de DatePicker for End Date with
new DatePickerDialog(xxxxxx.this, dateEnd, myCalendarEnd
.get(Calendar.YEAR), myCalendarEnd.get(Calendar.MONTH),
myCalendarEnd.get(Calendar.DATE)).show();
}
};
//Listener for end date
DatePickerDialog.OnDateSetListener dateEnd = new DatePickerDialog.OnDateSetListener(){
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
//Save the date in other calendar instance
myCalendarEnd.set(Calendar.YEAR, year);
myCalendarEnd.set(Calendar.MONTH, monthOfYear);
myCalendarEnd.set(Calendar.DATE, dayOfMonth);
//Time picker for end date
new TimePickerDialog(xxx.this,timeEnd,myCalendarEnd.get(Calendar.HOUR),myCalendarEnd.get(Calendar.MINUTE),false).show();
}
};
//Listener for time of End Date
TimePickerDialog.OnTimeSetListener timeEnd = new TimePickerDialog.OnTimeSetListener(){
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
myCalendarEnd.set(Calendar.HOUR, hourOfDay);
myCalendarEnd.set(Calendar.MINUTE,minute);
epochTimeEnd = myCalendarEnd.getTimeInMillis();
}
}
我对时间变量epochTimeStart
,epochTimeEnd
,但是当我将它们转换为日期是一直在增加一天(我尝试转换日期上的Web www.epochconverter .com和我有相同的结果)。
数据“当我将其转换为日期”里? –
在其他活动的另一种方法(我没有发布所有的代码),但转换不是问题,因为我打印纪元时间,并使用在线转换器(如www.epochconverter.com),结果是相同的,问题在于计算时代 – user3515652
其中是“计算时代”?你对计算有什么期望?最后要显示的数据是什么? –