Как я могу редактировать свои даты с помощью DatePicker?

Я использую два разных Datepickers для выбора даты начала и окончания. Для дня, месяца и года, которые я выберу, я хочу получить момент начала этого дня, например 18 сентября 2018 г., 18 сентября 2018 г. и час 00.00. Я хотел бы по возможности отключить GMT различий. С datepicker я делюсь журналами за выбранные мной даты.

D/START DATE: Sun Sep 23 18:23:51 GMT+03:00 2018
D/END DATE: Sun Sep 30 18:23:51 GMT+03:00 2018

Мне нужны следующие журналы:

D/START DATE: Sun Sep 23 00:00:00 2018
D/END DATE: Sun Sep 30 23:59:59 2018

Это означает, что любое время в пределах дня начала должно быть действительным, и любое время до конца даты окончания для даты окончания. Как мне этого добиться?


person Fatih    schedule 29.09.2018    source источник
comment
Рассмотрим java.time, современный API даты и времени Java. Как правило, с ним намного приятнее работать и, в частности, он лучше подходит для такой задачи фильтрации, как ваша. Если вы пишете код для менее нового Android, добавьте в свой проект библиотеку ThreeTenABP, чтобы использовать java.time, см. Как использовать ThreeTenABP в Android Project.   -  person Ole V.V.    schedule 30.09.2018
comment
Используйте полуоткрытые интервалы: когда пользователь выбирает 23 и 30 сентября, включите время, которое наступает 23 сентября в 00:00 или позже и строго до 1 октября в 00:00. Сохраняйте смещение по Гринвичу, иначе вы не сможете определить, находится ли время до или после этих пределов.   -  person Ole V.V.    schedule 30.09.2018


Ответы (2)


Вы можете изменить значение календаря следующим образом:

yourTime.set(Calendar.HOUR_OF_DAY,0);
yourTime.set(Calendar.MINUTE,0);
yourTime.set(Calendar.SECOND,0);

Or

yourTime.set(Calendar.HOUR_OF_DAY,23);
yourTime.set(Calendar.MINUTE,59);
yourTime.set(Calendar.SECOND,59);

Где yourTime - это экземпляр календаря. Надеюсь, это поможет.

person Andrew    schedule 29.09.2018

https://developer.android.com/reference/java/text/SimpleDateFormat

String dateOfDay = new SimpleDateFormat("dd MM yyyy").format(new Date());
String time = android.text.format.DateFormat.format("HH:mm:ss", new Date().getTime()).toString();

Это может быть ответ, который вы ищете. Вы также можете найти ярлыки в верхней ссылке.

person Trk    schedule 29.09.2018