如何使用 DatePicker 编辑我的日期?

Posted

技术标签:

【中文标题】如何使用 DatePicker 编辑我的日期?【英文标题】:How can I edit my dates with a DatePicker? 【发布时间】:2019-03-05 07:30:36 【问题描述】:

我正在使用两个不同的日期选择器来选择开始日期和结束日期。对于我选择的年月日,我想获取那天开始的时刻。例如 2018 年 9 月 18 日、2018 年 9 月 18 日和小时 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

这意味着开始日期内的任何时间都必须有效,并且在结束日期结束之前的任何时间都必须是结束日期。我该如何做到这一点?

【问题讨论】:

考虑 java.time,现代 Java 日期和时间 API。通常使用起来会更好,尤其是更适合像您这样的过滤任务。如果您正在为更少的新 android 编写代码,请将 ThreeTenABP 库添加到您的项目中以使用 java.time,请参阅How to use ThreeTenABP in Android Project。 使用半开间隔:当用户选择 9 月 23 日和 30 日时,包括 9 月 23 日或之后的 00:00 以及严格在 10 月 1 日 00:00 之前的时间乙>。请务必保留 GMT 偏移量,否则您将无法判断时间是在这些限制之前还是之后。 【参考方案1】:

您可以像这样更改日历值:

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

或者

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

yourTime 是 Calendar 实例。希望对您有所帮助。

【讨论】:

【参考方案2】:

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();

这可能是您正在寻找的答案。您还可以在顶部链接中找到快捷方式。

【讨论】:

以上是关于如何使用 DatePicker 编辑我的日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JQuery Datepicker 中禁用以前的日期

如何在文本字段单击时弹出 datePicker 并在编辑完成后消失

如何使用 Expression Blend 在 WPF 中编辑 DatePicker 的水印

如何在 DatePicker 中设置当前日期?

jQuery UI datepicker - 如何在代码中使用 dateFormat 作为日期?

如何从 jquery datepicker 中获取选定的日期