【问题标题】:How can I edit my dates with a DatePicker?如何使用 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 偏移量,否则您将无法判断时间是在这些限制之前还是之后。

标签: android datepicker 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();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-22
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多