【问题标题】:How to set time on a Date object to be zero (00/00/00)如何将 Date 对象的时间设置为零 (00/00/00)
【发布时间】:2010-01-13 16:00:32
【问题描述】:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(0);

这会将其设置为默认值。如何将其设置为零?

【问题讨论】:

  • 你能解释一下你为什么要这样做吗?我的意思是,您不妨问如何将日期设置为 Novtober 十一;没有像 Novtober 十一月这样的日期,同样地,也没有像 0/0/0 这样的日期,因此试图让运行时来表示该日期似乎是徒劳的。大概你有一些理由想做这件奇怪的事情;如果你能解释原因,也许有人可以告诉你一个更好的方法。
  • 我将系统日期(来自我们的内部系统)与文件中给出的日期进行比较。
  • 你如何比较你的约会?也许有更好的方法来做到这一点?
  • 也许你想在两个日期相等时显示 00/00/00?!

标签: java date time


【解决方案1】:

您可以使用 set 方法将您想要的值归零。例如:

calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);

【讨论】:

  • 这会将月份、日期和年份保留为当前月份的日期和年份
  • 我认为这就是 OP 想要的。
  • 问题是“如何将 Date 对象的时间设置为零”。我误会了吗?
  • 我希望日期为零,这样当我执行 DateFormat 时,我会得到类似 00/00/00 (MM/dd/yy) 的内容。谢谢。
  • 如果这只是出于格式化显示的目的(并且由于 Date 不能很好地表示 BigBang),您可以使用 null 作为日期并在为 null 时默认显示 00/00/00 .你到底想做什么?
【解决方案2】:

(00/00/00) 不是有效日期; API 不会产生这个值。

【讨论】:

  • 您应该在示例中使用有效日期。
【解决方案3】:

您可能应该知道setTimeInMillis() 的期望:

public void setTimeInMillis(long millis)

根据给定的 long 值设置此日历的当前时间。

参数:
millis - 从纪元开始的新时间,以 UTC 毫秒为单位。

时代定义为:

时间的瞬间可以用毫秒值表示,该值与 1970 年 1 月 1 日 00:00:00.000 GMT(公历)的纪元偏移。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    相关资源
    最近更新 更多