Java program to get the current date without timestamp
I need a Java program to get the current date without a timestamp :
Date d = new Date();
gives me date and timestamp.
But I need only the date, without a timestamp. I use this date to compare with another date object that does not have a timestamp.
On printing
System.out.println("Current Date : " + d)
of d it should print May 11 2010 - 00:00:00
.
A java.util.Date
object is a kind of timestamp - it contains a number of milliseconds since January 1, 1970, 00:00:00 UTC. So you can't use a standard Date
object to contain just a day / month / year, without a time.
As far as I know, there's no really easy way to compare dates by only taking the date (and not the time) into account in the standard Java API. You can use class Calendar
and clear the hour, minutes, seconds and milliseconds:
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);
Do the same with another Calendar
object that contains the date that you want to compare it to, and use the after()
or before()
methods to do the comparison.
As explained into the Javadoc of java.util.Calendar.clear(int field) :
The HOUR_OF_DAY , HOUR and AM_PM fields are handled independently and the the resolution rule for the time of day is applied. Clearing one of the fields doesn't reset the hour of day value of this Calendar. Use set(Calendar.HOUR_OF_DAY, 0) to reset the hour value.
edit - The answer above is from 2010; in Java 8, there is a new date and time API in the package java.time
which is much more powerful and useful than the old java.util.Date
and java.util.Calendar
classes. Use the new date and time classes instead of the old ones.
You could always use apache commons' DateUtils
class. It has the static method isSameDay()
which "Checks if two date objects are on the same day ignoring time."
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/18460.html
上一篇: Java字符串到日期的转换
下一篇: Java程序无需时间戳即可获取当前日期