欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

开发小工具

程序员文章站 2022-06-24 17:43:45
...

获取上级方法的信息

     * Thread.currentThread().getStackTrace()[1]是你当前方法执行堆栈
     * Thread.currentThread().getStackTrace()[2]就是上一级的方法堆栈 以此类推
     *
     * @param content
     * @return
     */
    public static String getMethodStr(String content) {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("「当前方法名称」>>>【 ")
                .append(Thread.currentThread().getStackTrace()[2].getMethodName())
                .append(" (属于 >>> ")
                .append(Thread.currentThread().getStackTrace()[2].getFileName())
                .append(" 类)")
                .append(" 】");
        if (!TextUtils.isEmpty(content)) {
            stringBuffer.append(",「方法的内容信息」 >>>【 ")
                    .append(content)
                    .append(" 】");
        }

        stringBuffer.append(",「当前时间」>>>【 ")
                .append(getDateTime())
                .append(" 】");

        return stringBuffer.toString();
    }
   

请求参数 按照字母排序并 MD5 加密

     * PHP  签名
     * @return
     */
    public static String getSign(SortedMap<String,String> map) {

        StringBuffer sb = new StringBuffer();

        Set<Map.Entry<String, String>> entries = map.entrySet();
        Iterator<Map.Entry<String, String>> iterator = entries.iterator();
        List<String> values = new ArrayList<>();

        while(iterator.hasNext()){
            Map.Entry entry = iterator.next();
            String k = String.valueOf(entry.getKey());
            String v = String.valueOf(entry.getValue());
            //忽略的字段
            if (StringUtils.isNotEmpty(v) && entry.getValue() !=null && !"sign".equals(k)) {
                values.add(k + "=" + v);
            }
        }

        String sign = StringUtils.join(values,"&");
		//自定义的**
        sb.append(sign)
                .append("8c0e42b6be17e2dc3c42f225ef8eff091561539433");

        return CommonUtils.MD5(sb.toString()).toLowerCase();

    }

    /**
     * md5常用工具类
     *
     * @param data
     * @return
     */
    public static String MD5(String data) {
        try {

            MessageDigest md5 = MessageDigest.getInstance("MD5");
            byte[] array = md5.digest(data.getBytes("UTF-8"));
            StringBuilder sb = new StringBuilder();
            for (byte item : array) {
                sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
            }
            return sb.toString().toUpperCase();

        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;

    }

当前时间的 前 多少天

     * 当前日期的前?天       dataNumber  天数
     * @return
     */
    public static String getBeforeOneDay(int dataNumber) {
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(new Date()); //设置时间为当前时间
        ca.add(Calendar.DATE, -dataNumber); //日减
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
        return df.format(ca.getTime());
    }

    /***
     * 获取?个小时之前的时间
     */
    public static String getLastFourHour(int hourNumber) {
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(new Date()); //设置时间为当前时间
        ca.add(Calendar.HOUR, -hourNumber); //减去 ?个小时
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
        return df.format(ca.getTime());
    }

时间戳转时间(10位时间戳)

    * 时间戳转时间(10位时间戳)
    *
    * @return
    */
   public static String timestampToDate() {
       long timeStampSec = System.currentTimeMillis() / 1000;
       return String.format("%010d", timeStampSec);
   }

       /**
    * String(yyyy-MM-dd HH:mm:ss)转10位时间戳
    *
    * @param time
    * @return
    */
   public static Integer StringToTimestamp(String time) {
       StringBuffer stringBuffer = new StringBuffer();
       stringBuffer.append(time)
               .append(" ")
               .append("00:00:00");
       int times = 0;
       try {
           times = (int) ((Timestamp.valueOf(stringBuffer.toString()).getTime()) / 1000);
       } catch (Exception e) {
           e.printStackTrace();
       }
       if (times == 0) {
           System.out.println("String转10位时间戳失败");
       }
       return times;

   }
   
       /**
    * String(yyyy-MM-dd HH:mm:ss)转10位时间戳
    *
    * @param time
    * @return
    */
   public static Integer StringToTiamp(String time) {
       int times = 0;
       try {
           times = (int) ((Timestamp.valueOf(time).getTime()) / 1000);
       } catch (Exception e) {
           e.printStackTrace();
       }
       if (times == 0) {
           System.out.println("String转10位时间戳失败");
       }
       return times;

   }

时间比较

    * @param newTime 较大的时间 (如果为空   默认当前时间 ,表示和当前时间相比)
    * @return -1 :同一天.    0:昨天 .   1 :至少是前天.
    * @throws ParseException 转换异常
    * @author LuoB.
    * @param---oldTime 较小的时间
    */
   private static int isYeaTerDay(String newTime) throws ParseException {
       Date oldTime = new Date();
       System.out.println("oldTime" + oldTime.getTime());
       //将下面的 理解成  yyyy-MM-dd 00:00:00 更好理解点
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
       Date today = format.parse(newTime);
       System.out.println("newTime" + today.getTime());
       //昨天 86400000=24*60*60*1000 一天
       if ((today.getTime() - oldTime.getTime()) > 0 && (today.getTime() - oldTime.getTime()) <= 86400000) {
           return 0;
       } else if ((today.getTime() - oldTime.getTime()) <= 0) { //至少是今天
           return -1;
       } else { //至少是前天
           return 1;
       }

   }

不满一年

    *   1  不满一年
    * @param startDay
    * @param endDay
    * @return
    */
   public static int isOneYear(String startDay, String endDay) {
       //  一年的秒数
       long oneMM = 31536000;
       long stDay = 0;
       long enDay = 0;

       stDay = StringToTimestamp(startDay);
       enDay = StringToTimestamp(endDay);

       if ((enDay - stDay) < oneMM) {
           //不到一年

           return 1;
       } else {
           return -1;
       }
   }