Java程序无需时间戳即可获取当前日期
我需要一个Java程序来获取没有时间戳的当前日期 :
Date d = new Date();
给我日期和时间戳。
但我只需要日期,没有时间戳。 我使用这个日期来比较没有时间戳的另一个日期对象。
打印时
System.out.println("Current Date : " + d)
它应该打印May 11 2010 - 00:00:00
。
一个java.util.Date
对象是一种时间戳 - 它包含自1970年1月1日00:00:00 UTC以来的毫秒数。 所以你不能使用标准的Date
对象来包含一天/一年/一年,而没有时间。
据我所知,没有真正简单的方法来比较日期,只需在标准Java API中考虑日期(而不是时间)。 您可以使用班级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的Javadoc (int字段)所解释的那样:
HOUR_OF_DAY , HOUR和AM_PM字段是独立处理的,并且适用于当天时间的解析规则。 清除其中一个字段不会重置此日历的小时数值。 使用set(Calendar.HOUR_OF_DAY,0)重置小时值。
编辑 - 上面的答案是从2010年开始的; 在Java 8中,包java.time
有一个新的日期和时间API,它比旧的java.util.Date
和java.util.Calendar
类更加强大和有用。 使用新的日期和时间类,而不是旧的。
你总是可以使用apache commons的DateUtils
类。 它具有静态方法isSameDay()
,它“检查两个日期对象是否在同一天忽略时间。”
static boolean isSameDay(Date date1, Date date2)
使用DateFormat解决此问题:
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
DateFormat dateFormat2 = new SimpleDateFormat("MM-dd-yyyy");
print(dateFormat.format(new Date()); // will print like 2014-02-20
print(dateFormat2.format(new Date()); // will print like 02-20-2014
链接地址: http://www.djcxy.com/p/18459.html
上一篇: Java program to get the current date without timestamp
下一篇: What do Clustered and Non clustered index actually mean?