欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android处理时间各种方法汇总

时间:2021-09-29 08:48:49|栏目:Android代码|点击:

本文实例为大家分享了Android处理时间的各种方法,供大家参考,具体内容如下

/**
   * 获取当前时间
   * 
   * @return 当前时间
   */
  public static String getdate() {
    SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
    Date curDate = new Date(System.currentTimeMillis());// 获取当前时间
    String time = formatter.format(curDate);
    return time;
  }
  /**
   * 获取当前秒数
   * @return
   */
  public static String getSecond(){
    Calendar calendar = Calendar.getInstance();
    int sec = calendar.get(Calendar.SECOND);
    String value = String.valueOf(sec<10?"0"+sec:sec);
    return value;
  }

  /**
   * 获取当天日期
   * 
   * @return 当前时间
   */
  public static String getriqi() {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    Date curDate = new Date(System.currentTimeMillis());// 获取当天日期
    String time = formatter.format(curDate);

    return time;
  }
    /**
   * 获取当前全部时间
   * 
   * @return 当前时间
   */
  public static String getalldate() {
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date curDate = new Date(System.currentTimeMillis());// 获取当前时间
    String time = formatter.format(curDate);
    return time;
  }

  public static Date getDate(String time){
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = null;
    try {
      date = formatter.parse(time);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    return date;
  }
    /**
   * 天数减一
   */
  public static String Yesterday(int data) {
    SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
    Date beginDate = new Date();
    Calendar date = Calendar.getInstance();
    date.setTime(beginDate);
    date.set(Calendar.DATE, date.get(Calendar.DATE) - data);
    // Date endDate = dft.parse(dft.format(date.getTime()));
    String time = dft.format(date.getTime());
    return time;
  }
    /**
   * 获取星期
   * 
   * @param date日期
   *      ****-**-**
   * @return
   */
  public static int getDay(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    return cal.get(Calendar.DAY_OF_WEEK);
  }
    /**
   * 时间顺序判断
   * @param data_ruke
   * @param data_choice
   * @return
   */
  public static boolean conpare_data(String data1,String data2){
    if(data1==null||"".equals(data1)){
      return true;
    }
    DateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try{
      Date dt1 = dFormat.parse(data1);
      Date dt2 = dFormat.parse(data2);
      if(dt1.getTime()>dt2.getTime()){
         Log.i("time_compare", "dt1在dt2之后");
         return false;
      }else if (dt1.getTime() < dt2.getTime()) {
         Log.i("time_compare", "dt1在dt2之前");
         return true;
      }
    }catch(Exception e){
       e.printStackTrace();
    }
    return false;
  }
    /**
   * 日期比较
   */
  public static int compare_date(String DATE1, String DATE2) {

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    try {
      Date dt1 = df.parse(DATE1);
      Date dt2 = df.parse(DATE2);
      if (dt1.getTime() > dt2.getTime()) {
        if (dt1.getTime() - dt2.getTime() == 86400000) {
          return 1;
        } else if (dt1.getTime() - dt2.getTime() == (86400000 * 2)) {
          return 2;
        } else if (dt1.getTime() - dt2.getTime() == (86400000 * 3)) {
          return 3;
        } else {
          return 0;
        }
      } else {
        return 0;
      }
    } catch (Exception exception) {
      exception.printStackTrace();
      return 0;
    }

  }
  /**
   * 返回两个string类型日期之间相差的天数
   */
   public static int daysBetween(String smdate,String bdate){ 
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
     Calendar cal = Calendar.getInstance();  
     long time1 = 0;
     long time2 = 0;

     try{
       cal.setTime(sdf.parse(smdate));  
       time1 = cal.getTimeInMillis();  
       cal.setTime(sdf.parse(bdate)); 
       time2 = cal.getTimeInMillis(); 
     }catch(Exception e){
       e.printStackTrace();
     }
     long between_days=(time2-time1)/(1000*3600*24); 

    return Integer.parseInt(String.valueOf(between_days));   
   }
   /**
   * 返回两个string类型日期相差的小时数
   */
   public static int daysBetween2(String startTime, String endTime) {
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH"); 
     Calendar cal = Calendar.getInstance();  
     long time1 = 0;
     long time2 = 0;

     try{
        cal.setTime(sdf.parse(startTime));  
        time1 = cal.getTimeInMillis();  
        cal.setTime(sdf.parse(endTime)); 
        time2 = cal.getTimeInMillis(); 
     }catch(Exception e){
       e.printStackTrace();
     }
     long between_days=(time2-time1)/(1000*3600); 

     return Integer.parseInt(String.valueOf(between_days));   
   }
   /**
   * 计算两段日期的重合日期
   */
   /**
   * 计算两段日期的重合日期
   * @param str1 开始日期1
   * @param str2 结束日期1
   * @param str3 开始日期2
   * @param str4 结束日期2
   * @return
   * @throws Exception
   */
  public static Map<String,Object> comparisonRQ(String str1, String str2, String str3,
      String str4) throws Exception {
    String mesg = "";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    String startdate = "";
    String enddate = "";
    try {
      Date dt1 = df.parse(str1);
      Date dt2 = df.parse(str2);
      Date dt3 = df.parse(str3);
      Date dt4 = df.parse(str4);
      if (dt1.getTime()<=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) {
        mesg = "f";//重合
        startdate = str3;
        enddate = str2;
      }
      if (dt1.getTime()>=dt3.getTime()&&dt3.getTime()<=dt2.getTime()&&dt2.getTime()<=dt4.getTime()) {
        mesg = "f";//重合
        startdate = str1;
        enddate = str2;
      }

      if (dt3.getTime()<=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) {
        mesg = "f";//重合
        startdate = str1;
        enddate = str4;
      }
      if (dt3.getTime()>=dt1.getTime()&&dt1.getTime()<=dt4.getTime()&&dt4.getTime()<=dt2.getTime()) {
        mesg = "f";//重合
        startdate = str3;
        enddate = str4;
      }

      System.out.println(startdate+"----"+enddate);


    }catch (ParseException e) {
      e.printStackTrace();
      throw new ParseException(e.getMessage(), 0);
    }catch(Exception e){
      e.printStackTrace();
      throw new Exception(e);
    }
    Map<String,Object> map = new HashMap<String,Object>();
    map.put("startdate", startdate);
    map.put("enddate", enddate);
    return map;
 }

上一篇:Android实现上下菜单双向滑动效果

栏    目:Android代码

下一篇:Android Recyclerview实现上拉加载更多功能

本文标题:Android处理时间各种方法汇总

本文地址:http://www.codeinn.net/misctech/178030.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有