我需要以HH:mm格式(例如14:20)获取当前时间(无数据),然后每隔一分钟或每分钟更新一次。我有点用这段代码得到它,但有可能把它转换成字符串吗? 我需要在单独的公共String中传递值“time”。 有解决方案吗 感谢
public class ClockCounter extends TimerTask {
public long time = System.currentTimeMillis();
@Override
public void run(){
time += 1000; //add 1 second to the time
//convert ms time to viewable time and set MainActivity.text (textview) text to this.
}
public long getTime(){ return time; }
}
更新:使用每秒运行一次的服务。
答案 0 :(得分:1)
使用 liveData 和协程:
val currentTime = liveData {
while (true){
emit(Calendar.getInstance().time)
kotlinx.coroutines.delay(1000)
}
}
答案 1 :(得分:0)
您只需要一个最终变量SimpleDateFormat
。
final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
您可以使用此代码随时随地获取格式:
String time = dateFormat.format(new Date());
答案 2 :(得分:0)
您可以这样做:
private void clock() {
final Handler hander = new Handler();
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
hander.post(new Runnable() {
@Override
public void run() {
getTime();
clock();
}
});
}
}).start();
}
void getTime() {
SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss", Local.getDefault());
textview.setText(dateFormat.format(new Date()));
}
答案 3 :(得分:-1)
您可以使用下面的代码获取带有小时,分钟和秒的当前时钟
final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
String time = dateFormat.format(new Date());