获取当前时间并在android中更新它

时间:2015-08-06 10:22:36

标签: java android time

我需要以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; }
}

更新:使用每秒运行一次的服务。

4 个答案:

答案 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());