【问题标题】:two string date compare with simple dateformat like EE,MMM dd yyyy两个字符串日期与简单的日期格式(如 EEE、MMM dd yyyy)进行比较
【发布时间】:2016-10-17 09:45:56
【问题描述】:

我需要用 SimpleDateformat 比较两个字符串日期,例如 EE,MMM dd yyyy 但是当我比较它时,它只会验证第一个值“EE”只有其他月份,日期和年份不验证是否有人知道这个问题解决方案请帮助我解决并提前感谢所有人

【问题讨论】:

  • 你想计算两个日期之间的天数吗?
  • 不,我需要知道更大或等于
  • 显然"March" > "April" ...(如果您比较字符串)...这种格式的日期与字符串不可比较
  • 我需要以这种格式显示日期 EE,MMM dd yyyy 那么如何将日期与这种格式进行比较,如果这个日期将转换为时间戳

标签: android datetime compare simpledateformat


【解决方案1】:
 SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy"/*or whatever your format is*/, Locale.US);
        try {
            Date actualDate = format.parse(actualDate);
            Date dateToCompare = format.parse(dateToCompare);

           if (actualDate.after(dateToCompare) || actualDate.before(dateToCompare)) {
                // Toast.makeText(context,""+actualDate.toString(),Toast.LENGTH_LONG).show();

            }
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

将其与日期格式进行比较,然后使用字符串结果。

【讨论】:

    【解决方案2】:
     try{
    
            SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy");
            Date date1 = sdf.parse("Mon Oct 17 2016");
            Date date2 = sdf.parse("Tue Oct 18 2016");
    
            System.out.println(sdf.format(date1));
            System.out.println(sdf.format(date2));
    
            if(date1.compareTo(date2)>0){
                System.out.println("Date1 is after Date2");
            }else if(date1.compareTo(date2)<0){
                System.out.println("Date1 is before Date2");
            }else if(date1.compareTo(date2)==0){
                System.out.println("Date1 is equal to Date2");
            }else{
                System.out.println("How to get here?");
            }
    
        }catch(ParseException ex){
            ex.printStackTrace();
        }
    

    【讨论】:

      【解决方案3】:

      试试这个:

        public static void main( String[] args )
      {
          try{
      
              SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy");
      
              Date date1 = sdf.parse("date1 example"); 
              Date date2 = sdf.parse("date2 example");
      
              System.out.println(sdf.format(date1));
              System.out.println(sdf.format(date2));
      
              if(date1.compareTo(date2)>0){
                  System.out.println("Date1 is > Date2");
              }else if(date1.compareTo(date2)<0){
                  System.out.println("Date1 is <Date2");
              }else if(date1.compareTo(date2)==0){
                  System.out.println("Date1 is = to Date2");
              }else{
                  System.out.println("!!!");
              }
      
          }catch(ParseException ex){
              ex.printStackTrace();
          }
      }
      

      更新

      如果你想使用Calendar

      public static void main( String[] args )
      {
          try{
      
              SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy");
              Date date1 = sdf.parse("date1 example");
              Date date2 = sdf.parse("date2 example");
      
              System.out.println(sdf.format(date1));
              System.out.println(sdf.format(date2));
      
              Calendar cal1 = Calendar.getInstance();
              Calendar cal2 = Calendar.getInstance();
              cal1.setTime(date1);
              cal2.setTime(date2);
      
              if(cal1.after(cal2)){
                  System.out.println("Date1 is > Date2");
              }
      
              if(cal1.before(cal2)){
                  System.out.println("Date1 is < Date2");
              }
      
              if(cal1.equals(cal2)){
                  System.out.println("Date1 is = Date2");
              }
      
          }catch(ParseException ex){
              ex.printStackTrace();
          }
      }
      

      如果您想在日期中添加天数,请执行以下操作:

      String date = "your date";  // your date
      SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd yyyy");
      Calendar c = Calendar.getInstance();
      c.setTime(sdf.parse(date));
      c.add(Calendar.DATE, 3);  // 3 days to add
      date= sdf.format(c.getTime());  // put the new date in date variable
      

      希望对你有帮助

      【讨论】:

      • 这种格式可以通过点击增加一天
      • 是的,但是你必须使用Calendar api 来添加一天这样的add(Calendar.DATE, 1);
      猜你喜欢
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多