日期:2014-05-20  浏览次数:20759 次

java.util.Date
如何比较两个DATE变量是否是同一天?

(用getYear/getMonth/getDate似乎IDE里面很不好看)

------解决方案--------------------
现在该用Calendar了吧
------解决方案--------------------
呵呵,我想知道一下Calendar怎么又怎么判断同一天啊?

:)
------解决方案--------------------
before after compareTo
------解决方案--------------------
up**
------解决方案--------------------
两种:
1、用java.util.Date.compareTo(Date anotherDate) 但是Date这个类很多方法对时区等支持不够,所以不少都是已过时。现在日期推荐用大家这个方法比较calnedar。不过Date还是有可取之处,相对来说它更轻量级。在比较文本日期的时候比较简单,比如:
DateFormat df = new SimpleDateFormat();
(df.parse( "2007-05-01 ")).compareTo(df.parse( "2007-07-01 "))
算是一个比较严谨又简单的比较文本日期的方法了。
2、用calnedar的实现类GregorianCalendar ,这个构造就多了。实际能进行比较的方法就是dreamover(梦醒了〖http://hellfire.cn〗)所说的public boolean before(Object when),public boolean after(Object when),public int compareTo(Calendar anotherCalendar),其实本质都是用的compareTo

------解决方案--------------------
Calendar c1 = new GregorianCalendar(2007, 6, 11, 14, 22, 33);
Calendar c2 = new GregorianCalendar(2007, 6, 11, 15, 22, 44);
SimpleDateFormat sim = new SimpleDateFormat( "yyyyMMdd ");
String c1s = sim.format(c1.getTime());
String c2s = sim.format(c2.getTime());
System.out.println(c1s.compareTo(c2s));