Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
减去两个日期即为“错误”;运算符-对于参数类型java.util.Date、java.util.Date";未定义;_Java_Date - Fatal编程技术网

减去两个日期即为“错误”;运算符-对于参数类型java.util.Date、java.util.Date";未定义;

减去两个日期即为“错误”;运算符-对于参数类型java.util.Date、java.util.Date";未定义;,java,date,Java,Date,在下面的代码中 在从日期中减去日期时,如果出现此错误,则运算符-对于参数类型java.util.date、java.util.date未定义“ 变量currentDate是一个字符串;为什么我不能像这样将它保存在Date变量中Date currentDate=ddmmyy.format(new Date()),是否.format函数返回String public class AgeCalculator { public static SimpleDateFormat ddmmyy=new

在下面的代码中

  • 在从日期中减去日期时,如果出现此错误,则运算符-对于参数类型java.util.date、java.util.date未定义“
  • 变量currentDate是一个
    字符串
    ;为什么我不能像这样将它保存在
    Date
    变量中
    Date currentDate=ddmmyy.format(new Date())
    ,是否
    .format
    函数返回
    String

    public class AgeCalculator {
    
      public static SimpleDateFormat ddmmyy=new SimpleDateFormat("dd/mm/yyyy");
    
    public static void main(String[] args) throws Exception {
    String dob = "05/01/1993";
    Date mod_date =  ddmmyy.parse(dob);
    String currentDate = ddmmyy.format(new Date());
    Date mod_currentDate = ddmmyy.parse(currentDate);
    int days = mod_currentDate-mod_date;
    
     }
    
    
    }
    

  • 第一次将
    dd/mm/yyyyy
    更改为
    dd/mm/yyyy
    mm
    -小时分钟和
    mm
    -年月份

    SimpleDateFormat ddmmyy=new SimpleDateFormat("dd/MM/yyyy");
    String dob = "21/07/2014";
    Date mod_date =  ddmmyy.parse(dob);
    String currentDate = ddmmyy.format(new Date());
    Date mod_currentDate = ddmmyy.parse(currentDate);
    
    它将以毫秒为单位显示它们之间的差异,其类型为
    long

    long differenceInMillis = mod_currentDate.getTime()-mod_date.getTime();
    
    fnaly从毫秒中获取天数

    int days = (int) (differenceInMillis / (1000*60*60*24));
    System.out.println(days);
    
    也看看这里,
    您的mod_currentDate返回1月22日而不是7月22日,因为您使用mm而不是mm

    public class AgeCalculator  {
         public static SimpleDateFormat ddmmyy=new SimpleDateFormat("dd/MM/yyyy");
    
          public static void main(String[] args) throws Exception {
          String dob = "05/01/1993";
          Date mod_date =  ddmmyy.parse(dob);
          Date currentDate = new Date();
          int days = daysBetween(mod_date,currentDate);
          System.out.println("Get the amount of days between " + mod_date + " and " + currentDate);
          System.out.println("Days= "+ days); 
           }
    
          public static int daysBetween(Date d1, Date d2){
            return (int)( (d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24));
        }
    }
    
    输出为:

    Get the amount of days between Tue Jan 05 00:00:00 CET 1993 and Tue Jul 22 16:19:02 CEST 2014
    Days= 7868
    

    看,我应该看什么,这并没有回答我的问题。。。