最近需要增加让APP在特定的时间(比如2017.12.20)之后不能正常使用,所以我们需要获取到系统的时间或者是从服务器上获取时间进行比较大小,从而来实现此功能。 1.用相同的字符串类型进行比较,我们自己一开始肯定是定义String类型比如 String n = "2.我在此是用Calendar来获取的系统时间2017.12.20",而我们获取到的系统时间字符串,它和我们正常定义的字符串类型是不一样的不能直接进行比较,所以在这里我是将字符串类型转换成了时间字符串的类型后,进行时间的前后比较;(PS相关的时间与字符串比较大小,以及他们之间的转换我在此就不讲述了,有需要的朋友可以去百度,)
3.获取系统时间negative会有BUG,如果有人更改了系统时间,软件失效的功能也就被破解了;
4.到了指定时间后主要是让这个APP跳转到了一个特定的页面(比如页面就提示“软件错误”),而程序实不会崩溃的。目前我还想到一个办法就是,写一个有BUG的页面,只要跳到了此页面,程序就崩溃,在有空闲后再来填此坑。//获取系统时间 Calendar calendar = Calendar.getInstance(); //月份是从0开始计算的,所以获取系统的的月份需加1才是正常的日期 SystemTime = calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日"; System.out.println(SystemTime); //设置结束日期,将字符串类型转换成时间字符串,与获取到的时间进行比较 String dateStr = "2017-12-20"; String pattern = "yyyy-MM-dd"; SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try{ Date date = dateFormat.parse(dateStr); calendar.setTime(date); //将字符串转换成的时间戳取出 EndTime = calendar.get(Calendar.YEAR)+"年"+calendar.get(Calendar.MONTH)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日"; System.out.println(EndTime); }catch (ParseException e){ e.printStackTrace(); }
获取到系统时间和自定义时间后,接着只要做个时间前后比较就可以了/** * 进行判断 * 小于0表示SystemTime在EndTime之前 */ if (SystemTime.compareTo(EndTime)<0) { Intent intent1 = new Intent(); intent1.setClass(activity_Welcome.this, GuideActivity.class); startActivity(intent1); } else { Intent intent2 = new Intent(); intent2.setClass(activity_Welcome.this, activity_error.class); startActivity(intent2); }
【Android】 获取系统时间以及时间与字符串时间的转换以及时间的比较从而设置软件失效时间
最新推荐文章于 2024-08-15 04:00:10 发布