java.util.Date

kook 2007-07-10 01:25:45
如何比较两个DATE变量是否是同一天?

(用getYear/getMonth/getDate似乎IDE里面很不好看)
...全文
1084 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
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));
malligator 2007-07-10
  • 打赏
  • 举报
回复
我只想知道同一天不同时间难道equals返回true,compareTo返回0?

ls的LS貌似可行..
orangemike 2007-07-10
  • 打赏
  • 举报
回复
两种:
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
kook 2007-07-10
  • 打赏
  • 举报
回复
自己写了一下,大家提下意见

SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMDD");
if(sdf.format(dt1).equals(sdf.format(dt2))) {
...
}
KingNE 2007-07-10
  • 打赏
  • 举报
回复
up**
joejoe1991 2007-07-10
  • 打赏
  • 举报
回复
星星说话就是不一样 让我等小菜看不懂。。。。。。 学习。。 谁来回答一下下
dreamover 2007-07-10
  • 打赏
  • 举报
回复
before after compareTo
malligator 2007-07-10
  • 打赏
  • 举报
回复
equals? 2007-07-10 10:00am 和 2007-07-10 10:00pm 是同一天不?
malligator 2007-07-10
  • 打赏
  • 举报
回复
呵呵,我想知道一下Calendar怎么又怎么判断同一天啊?

:)
  • 打赏
  • 举报
回复
定义两个calnedar用equals方法直接判断
  • 打赏
  • 举报
回复
这些方法被“遗弃”了,不建议使用了,跟楼上所说使用 Calendar 就可以了。
sunggwei 2007-07-10
  • 打赏
  • 举报
回复
现在该用Calendar了吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧