资讯专栏INFORMATION COLUMN

Android 时间与日期操作类

inapt / 2743人阅读

摘要:获取本地日期与时间时间格式年月日一年的第几天一个月的第几星期一年的第几星期时时区小时小时制小时小时制分秒毫秒星期上午下午计算相隔天数获得天数差计算时间差这样得到的差值是毫秒级别已到期分钟精确天小时分钟天小时判断日期

获取本地日期与时间
public String  getCalendar() {
    @SuppressLint("SimpleDateFormat")
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    Date dt = new Date();
    return sdf.format(dt);
}

//SimpleDateFormat 时间格式

//y 年 MM 月 dd 日 

//D 一年的第几天 W 一个月的第几星期 w 一年的第几星期 k时 z时区

//HH 小时(24小时制) hh小时(12小时制) mm 分 ss 秒 SS 毫秒 E 星期 

//a 上午/下午
 计算相隔天数
/**
 * 获得天数差
 * @param begin 
 * @param end
 * @return
 */
public long getDayDiff(Date begin, Date end){
    long day = 1;
    if(end.getTime() < begin.getTime()){
        day = -1;
    }else if(end.getTime() == begin.getTime()){
        day = 1;
    }else {
        day += (end.getTime() - begin.getTime())/(24 * 60 * 60 * 1000) ;
    }
    return day-1;
}

Date date=new Date(2017-1900,11,1,0,30);

Date date2=new Date(2018-1900,11,1,0,30);

getDayDiff(date,date2)
计算时间差
   public static String getTimeDiffer(String date,String date2,String str){
        long diff,days,hours,minutes;
        @SuppressLint("SimpleDateFormat")
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        try
        {
            Date d1 = df.parse(date);
            Date d2 = df.parse(date2);
            if(d1.getTime()>d2.getTime()) {
                diff = d1.getTime() - d2.getTime();//这样得到的差值是毫秒级别
                days = diff / (1000 * 60 * 60 * 24);

                hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
                minutes = (diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60);
            }else{
                return "已到期";
            }
            if(days==0){
                if(hours==0){
                    return minutes+"分钟";
                }
            }
            if(str.equals("精确")){
                return ""+days+"天"+hours+"小时"+minutes+"分钟";
            }
            return ""+days+"天"+hours+"小时";
        }catch (Exception ignored){
        }
        return "";
    }
判断日期是否在指定日期
  public static int getTimeCompareSize2(String startTime, String endTime){
        int i=0;
        @SuppressLint("SimpleDateFormat")
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");//年-月-日 时-分
        try {
            Date date1 = dateFormat.parse(startTime);//开始时间
            Date date2 = dateFormat.parse(endTime);//结束时间
            if (date2.getTime()date1.getTime()){
                i= 3;//结束时间大于开始时间
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return  i;
    }
获取网络时间与日期
private void getNetTime() {
     URL url = null;
     try {
          url = new URL("http://www.baidu.com");
          URLConnection uc = url.openConnection();
          uc.connect(); 
          long ld = uc.getDate(); //取得网站日期时间
          @SuppressLint("SimpleDateFormat")
          DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
          Calendar calendar = Calendar.getInstance();
          calendar.setTimeInMillis(ld);
          final String format = formatter.format(calendar.getTime());
          boottom_tiem.setText(format);
     } catch (Exception e) {
         e.printStackTrace();
     }
}

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/2892.html

相关文章

  • Android关于SQLite的日期时间的存储

    摘要:最近一直在学习,由于的完全是半路出家,以前一直在用和之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。说清楚,中,原始的存储只有以下几种文档。有符号整数,根据值的大小存储在字节中。。浮点数,储存为字节的浮点数。。 最近一直在学习Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。 说...

    luck 评论0 收藏0
  • Android关于SQLite的日期时间的存储

    摘要:最近一直在学习,由于的完全是半路出家,以前一直在用和之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。说清楚,中,原始的存储只有以下几种文档。有符号整数,根据值的大小存储在字节中。。浮点数,储存为字节的浮点数。。 最近一直在学习Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。 说...

    lwx12525 评论0 收藏0
  • Android关于SQLite的日期时间的存储

    摘要:最近一直在学习,由于的完全是半路出家,以前一直在用和之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。说清楚,中,原始的存储只有以下几种文档。有符号整数,根据值的大小存储在字节中。。浮点数,储存为字节的浮点数。。 最近一直在学习Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之类的东西,对于时间和日期的处理,一直没能弄得比较清楚。 说...

    mudiyouyou 评论0 收藏0
  • Android动态加载插件APK

    摘要:此时,我们的工程长这个样子,这已经是我们工程的最终样子了实现自定义类加载器有了插件,接下来我们需要在应用程序运行时,在需要的时候加载这个中的内容。 问题起因 我曾经在开发Android Application的过程中遇到过那个有名的65k方法数的问题。如果你开发的应用程序变得非常庞大,你八成会遇到这个问题。 这个问题实际上体现为两个方面:一、65k方法数Android的APK安装包将编...

    TigerChain 评论0 收藏0
  • Android日期时间选择控件DatePicker和TimePicker

    摘要:注为了便于区分,本文将选择年月日的控件称为日期选择控件,将选择时分的控件称为时间选择控件。初始化控件和创建相关变量初始化控件初始化控件,并为两个设置监听事件创建相关变量使用类获取当前的日期时间。 这个月根据需求在项目中做了一个时间选择器,虽然没有用到Android原生的时间选择控件,但我羞愧地发现自己竟然从来没有用过这方面控件!趁现在有时间,赶紧查缺补漏,写一篇博客吧。 (注:为了便于...

    cpupro 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<