两个变量,都是datatime的,打印出来一个是Wed Apr 05 00:00:00 CST 2006 ,一个是 2006-04-05这样比较if(getDate().compareTo(dtCurrent) >= 0)结果却是:Wed Apr 05 00:00:00 CST 2006 < 2006-04-05请教,怎样比较这两个变量的日期?不比时间。
解决方案 »
- 判断int型是否为空
- int tab[][] = new int[4][];这个写法分配多少堆空间?
- 关于JAVA蓝牙开发的基础问题
- 一个发送e-mail的程序,有点问题,大家帮忙看看
- 请教一个JRadioButton和TableCellRenderer问题
- Java执行一个方法的return返回一个自己定义的复杂对象是传值还是引用
- 这本书--《JAVA TCP/IP应用开发详解》如何?
- (送分发发88)一个java应用程序的表单布置的小问题,希望大家帮忙?
- 请问如何用Java从数据库中读取媒体文件,如图片,mpeg 等
- 结果为空怎么板?看看我的程序
- 菜鸟求助!
- 请教高手:对象中的static变量
SimpleDateFormat smdf = new SimpleDateFormat("yyyy-MM-dd");
String Strdate= new String(smdf.format(date));
Date的compareTo有两种compareTo(Object o)跟compareTo(Date d)
注意型别
你那面的那个dtCurrent不知道是什么类型
觉得你写的也没有错啊,是不是没有parse过,能看看你的两个日期怎么得到的码。getDate得到的是一个月中的第几天。
一个Wed Apr 05 00:00:00 CST 2006 ,一个是 2006-04-05
其中“EffectivetDate”由客户端传来,“dtCurrent”是系统当前时间,dtCurrent=new Date(System.currentTimeMillis());我希望是:
if(EffectiveStartDate>=dtCurrent)
{
System.out.println("effective date >= current date ");
}
else
{
System.out.println("effective date < current date ");
}Wed Apr 05 00:00:00 CST 2006 应该等于 2006-04-05
使用如下代码取当前日期:
Calendar now = Calendar.getInstance();
SimpleDateFormat yearAndMonth = new SimpleDateFormat("yyyy-MM-dd");
Date dtCurrent =null;
try {
dtCurrent = yearAndMonth.parse( yearAndMonth.format(now.getTime()));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
然后再进行日期比较
直接使用compareTo是可以的
getDate().getTime() > dtCurrent.getTime()
象这样,就无法判断大小
to stefli() :
楼主要不带Time的日期比较
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test
{
public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
private static void compare_Date(Date EffectiveStartDate){
Date dtCurrent=new Date();
String EffectiveStart_Date = sdf.format(EffectiveStartDate);
String dtCurrent_Date = sdf.format(dtCurrent);
if(EffectiveStart_Date.compareTo(dtCurrent_Date) >= 0)
{
System.out.println("effective date >= current date");
}
else
{
System.out.println("effective date < current date");
}
}
public static void main(String[] args) {
Date EffectiveStartDate = new Date();
compare_Date(EffectiveStartDate);
}
}
象这样,就无法判断大小
请指教:年月日是数字,为什么不能比较大小?
20060910 == 20060910 20060911 > 20060910
Date d2 = new Date();long l1 = d1.getTime();
long l2 = d2.getTime();if (l1 < l2)
{
...
}
new Date(System.currentTimeMillis())楼主很可能用的是java.util.Date类型,精度到微妙,默认时分秒为此时刻,自然比较前者小于后者