如何从计时器中获取时间?我试过getText,getFormat,getBase等,但没有一个可以工作.
示例代码段:
Chronometer t = (Chronometer)findViewById(R.id.toptime);
long time = SystemClock.elapsedRealtime()-t.getBase();
Log.d(null,"Was: "+time); //time is not the proper time for some reason - it is a random number between 0 and 50
t.setBase(SystemClock.elapsedRealtime());
t.start();
Run Code Online (Sandbox Code Playgroud) 从特定时间开始计时器我遇到了问题.有一个Date对象,我希望我的计时器从:
Date d = new Date(); //now, just for example
chronometer.setBase(d.getTime()); //long value of d
Log.d("Date: " , "d.getTime() time is [" + d.getTime() +"]");
Log.d("Chron: " , "chronometer.getBase() is [" + chronometer.getBase() +"]");
//let's print out elapsedRealtime from official sample
Log.d("Chron: " , "SystemClock.elapsedRealtime() is [" + SystemClock.elapsedRealtime() +"]");
Run Code Online (Sandbox Code Playgroud)
输出:
06-02 13:35:23.025: D/Date:(928): d.getTime() time is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): chronometer.getBase() is [1338644123032]
06-02 13:35:23.037: D/Chron:(928): SystemClock.elapsedRealtime() is [11624388]
Run Code Online (Sandbox Code Playgroud)
实际上,为什么这个长时间值不同(11624388和1338644123032)?
当我从基座开始我的天文台时
chronometer.setBase(SystemClock.elapsedRealtime());
Run Code Online (Sandbox Code Playgroud)
- 它总是工作正常("00:00"和上升)
但是当我尝试设置过去日期的日期时(昨天):
chronometer.setBase(yesterday.getTime());
Run Code Online (Sandbox Code Playgroud)
- 它显示"00:0("并且每秒更新最新的字符")","*","/"和其他
您能告诉我如何将计时器基座设置为Date对象?