我需要一个Java程序来获取 没有时间戳 的 当前日期 :
Date d = new Date();
给我日期和时间戳。
但是我只需要日期,没有时间戳。我使用此日期与另一个没有时间戳的日期对象进行比较。
在印刷时
System.out.println("Current Date : " + d)
d应打印May 11 2010 - 00:00:00
。
一个java.util.Date
对象 是 一种时间戳的-它包含自00:00:00
1970年1月1日,UTC毫秒数。因此,您不能使用标准Date
对象仅包含一天/一个月/一年而没有时间。
据我所知,在标准Java API中,没有真正简单的方法可以通过仅考虑日期(而不是时间)来比较日期。您可以使用class
Calendar
并清除小时,分钟,秒和毫秒:
Calendar cal = Calendar.getInstance();
cal.clear(Calendar.HOUR_OF_DAY);
cal.clear(Calendar.AM_PM);
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
对Calendar
包含要与之比较的日期的另一个对象执行相同的操作,然后使用after()
或before()
方法进行比较。
如 java.util.Calendar.clear(int字段) 的Javadoc 中所述 :
该 HOUR_OF_DAY , HOUR 和 AM_PM
字段的独立处理并应用了一天的时间分辨率规则。清除其中一个字段不会重置此日历的一天中的小时值。使用set(Calendar.HOUR_OF_DAY,0)重置小时值。
编辑 -上面的答案是从2010年开始;在Java
8中,程序包中有一个新的日期和时间API,java.time
它比旧的java.util.Date
和java.util.Calendar
类更强大和有用。使用新的日期和时间类别,而不是旧的日期和时间类别。
问题内容: 我需要以Java格式获取当前时间戳, 例如: 我也需要它是线程安全的。 我可以利用这样的东西吗? 或此处链接中讨论的示例。 问题答案: 如果仅在与使用它相同的方法块中创建它,则threadunsafety 不会成为问题。换句话说,您 不会 将其分配为类的静态变量或实例变量,而不会在可被多个线程调用的一个或多个方法中重用它。只有这样,才会暴露线程的安全性。但是,您可以安全地重用同一方法块
问题内容: 我想要这样的当前时间戳: 1320917972 问题答案: 解决方案是:
我想做一个考勤应用程序,我真的很困惑iOS和Firebase中的日期和时间。
问题内容: 用Java获取当前日期/时间的最佳方法是什么? 问题答案: 这取决于你想要的日期/时间形式: 如果你想将日期/时间作为一个单一的数值,则可以用UNIX纪元后的毫秒数(以Java形式)表示。该值是UTC时间点的增量,并且与本地时区无关…假设系统时钟已正确设置。 如果你希望日期/时间的格式允许你以数字方式访问组件(年,月等),则可以使用以下方式之一: 给你一个Date使用当前日期/时间初始
我如何从一个可观察的对象中获取当前值而不订阅它?我只需要当前值一次,而不是新值。
问题内容: 这是我要传递时间戳的Under函数,我只需要从时间戳返回的日期,而不是小时和秒。通过以下代码,我得到了- 这是我得到的输出。 但是我只需要这样的日期 有什么建议? 问题答案: 改用SimpleDateFormat: 更新 :Java 8解决方案: