一、倒计时:
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;
}