工具类集锦

一、倒计时:

private void showTime(final TextView timeTxt)
    {
        CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                timeTxt.setText(millisUntilFinished/1000 + "秒后重新获取");
            }

            @Override
            public void onFinish() {
                timeTxt.setText("获取验证码");
            }
        }.start();
    }

二、计时器(属性动画实现):

private void showTime(final TextView timeTxt)
    {
        // 第一个参数大则倒计时,否则正常计时
        ValueAnimator valueAnimator = ValueAnimator.ofInt(1, 30); 
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                timeTxt.setText(animation.getAnimatedValue().toString());
            }
        });
        valueAnimator.setDuration(30000);
        valueAnimator.setInterpolator(new LinearInterpolator());
        valueAnimator.start();
    }

三、字符串数组拼装成json格式:

/**
     * 把字符串数组组装成:["145345091456d1c9d6dcd9a84f1b90ca", "145345091456d1c9d6dcd9a84f1b90ca"]
     * @param strs
     * @return
     */
    public static String getSplitStringArray(String[] strs)
    {
        StringBuffer buffer = new StringBuffer();
        buffer.append("[");
        for (int i = 0; i < strs.length; i ++)
        {
            String str = strs[i];
            buffer.append("\"" + str + "\"");
            if (i < strs.length-1)
            {
                buffer.append(",");
            }
        }
        buffer.append("]");
        return buffer.toString();
    }

四、返回指定格式的日期:

public static String getTime(long time) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        return format.format(new Date(time));
    }

    public static String getHourAndMin(long time) {
        SimpleDateFormat format = new SimpleDateFormat("HH:mm");
        return format.format(new Date(time));
    }

    public static String getChatTime(long timesamp) {
        String result = "";
        SimpleDateFormat sdf = new SimpleDateFormat("dd");
        Date today = new Date(System.currentTimeMillis());
        Date otherDay = new Date(timesamp);
        int temp = Integer.parseInt(sdf.format(today))
                - Integer.parseInt(sdf.format(otherDay));

        switch (temp) {
        case 0:
            result = "今天 " + getHourAndMin(timesamp);
            break;
        case 1:
            result = "昨天 " + getHourAndMin(timesamp);
            break;
        case 2:
            result = "前天 " + getHourAndMin(timesamp);
            break;

        default:
            result = getTime(timesamp);
            break;
        }

        return result;
    }

private static final SimpleDateFormat[] ACCEPTED_TIMESTAMP_FORMATS = {
            new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US),
            new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"),
            new SimpleDateFormat("yyyy-MM-dd HH:mm"),
            new SimpleDateFormat("yyyy-MM-dd")
    };

    public static Date parseTimestamp(String timestamp) {
        for (SimpleDateFormat format : ACCEPTED_TIMESTAMP_FORMATS) {
//            format.setTimeZone(TimeZone.getTimeZone("GMT"));
            format.setTimeZone(TimeZone.getTimeZone("GMT+8")); // fix by WEI 应取东八区,北京时间
            try {
                return format.parse(timestamp);
            } catch (ParseException ex) {
                continue;
            }
        }

        // All attempts to parse have failed
        return null;
    }

    public static long timestampToMillis(String timestamp, long defaultValue) {
        if (TextUtils.isEmpty(timestamp)) {
            return defaultValue;
        }
        Date d = parseTimestamp(timestamp);
        return d == null ? defaultValue : d.getTime();
    }

五、获取指定url中的指定参数字段对应的值:

**
     * 获取指定url中的指定参数字段对应的值
     * @param url
     * @param spec
     * @return
     */
    public static String getSpeFild(String url, String spec)
    {
        String specField = "", content = "";
        if (url.contains("?"))
        {
            String[] strArr = url.split("\\?");
            content = strArr[1].trim(); 
            if (content.contains("&"))
            { // 有多个参数
                String[] strs = content.split("&"); 
                for (int i = 0; i < strs.length; i ++)
                {
                    if (strs[i].contains(spec))
                    {
                        String[] infos = strs[i].split("=");
                        specField = infos[1].trim();
                        break;
                    }
                }
            }
            else
            { // 只有一个参数
                if (content.contains(spec))
                {
                    String[] strs = content.split("=");
                    specField = strs[1].trim();
                }
            }
        }
        return specField;
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值