Android HH-mm-ss 转时间戳在 倒计时
时间: 2024-09-06 18:07:30 浏览: 71
在Android中,将HH-mm-ss格式的时间转换为时间戳(通常指的是从1970年1月1日00:00:00 UTC到当前时间的毫秒数)需要先将HH-mm-ss格式的时间解析为一个`Date`对象,然后将这个`Date`对象转换为时间戳。这里提供一个简单的例子来说明如何进行这种转换:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeUtils {
public static long convertHHmmssToTimestamp(String timeHHmmss) {
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
try {
Date date = format.parse(timeHHmmss);
return date.getTime();
} catch (ParseException e) {
e.printStackTrace();
return -1; // 解析失败时返回-1或其他错误码
}
}
}
```
在上面的代码中,`convertHHmmssToTimestamp`方法接受一个符合HH-mm-ss格式的字符串,然后使用`SimpleDateFormat`进行解析,最后通过调用`Date`对象的`getTime()`方法得到时间戳。注意,这里的`SimpleDateFormat`是假设你的时间字符串是本地时间。如果你的时间是UTC时间,需要在格式字符串中添加`'Z'`(代表UTC时间)。
在倒计时应用中,你通常会用这个时间戳与当前时间戳做差值计算,以得到剩余的时间长度。以下是一个简单的倒计时功能实现:
```java
public class CountdownTimer {
private long targetTimestamp; // 目标时间戳
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
long currentTime = System.currentTimeMillis();
long remainTime = targetTimestamp - currentTime;
if (remainTime <= 0) {
// 倒计时结束
handler.removeCallbacks(runnable);
} else {
// 更新UI或执行其他操作
updateUI(remainTime);
// 每秒更新一次
handler.postDelayed(this, 1000);
}
}
};
public void startCountdown(String timeHHmmss) {
targetTimestamp = TimeUtils.convertHHmmssToTimestamp(timeHHmmss);
handler.post(runnable);
}
private void updateUI(long remainTime) {
// 更新UI的代码,例如显示剩余时间
}
}
```
在上面的`CountdownTimer`类中,我们定义了一个`runnable`来执行倒计时逻辑,每秒更新一次剩余时间,并通过`Handler`的`postDelayed`方法来周期性执行。
阅读全文