如何设置从Date对象的Andr​​oid天文台基地的时间? [英] How to set Android Chronometer base time from Date object?

查看:198
本文介绍了如何设置从Date对象的Andr​​oid天文台基地的时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经得到了从特定时间开始计时表的问题。
有一个Date对象我希望我的天文台表开始从:

 日期D =新的日期(); //现在,只是举例
chronometer.setBase(d.getTime()); //的D值长
Log.d(日期,d.getTime()的时间为[+ d.getTime()+]);
Log.d(代下:,chronometer.getBase()是[+ chronometer.getBase()+]);
//让我们从官方样片打印出来elapsedRealtime
Log.d(代下:,SystemClock.elapsedRealtime()是[+ SystemClock.elapsedRealtime()+]);

输出:

  06-02 13:35:23.025:D /日期:(928):d.getTime()时间为[1338644123032]
06-02 13:35:23.037:D /代上:(928):chronometer.getBase()为[1338644123032]
06-02 13:35:23.037:D /代上:(928):SystemClock.elapsedRealtime()为[11624388]

其实,为什么时间differes这一长期价值(11624388和1338644123032)?

当我开始我的天文台从基本

  chronometer.setBase(SystemClock.elapsedRealtime());

- 它总是工作正常(00:00和上升)

但是,当我尝试设置(昨日远东)的日期从过去的日期:

  chronometer.setBase(yesterday.getTime());

- 它表明00:0(并改变每一秒的最新字符到),*,/和其他

你能请告知我怎么能记时计基地设置为Date对象?


解决方案

  

其实,为什么时间differes这一长期价值(11624388和1338644123032)?


SystemClock.elapsedRealtime()是毫秒数,因为设备已打开。其他值都基于的 System.currentTimeMillis的(),因为Unix纪元的毫秒数。


  

你能请告知我怎么能记时计基地设置为Date对象?


您没有。这不是什么天文台是。 天文台表的文档


  

您可以给它在elapsedRealtime()时基开始时间,并从该计数,或者如果你不给它一个基地的时候,它会使用在你调用的start()的时间。


I've got an issue with starting chronometer from the specific time. There is a Date object I want my chronometer start from:

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() +"]");

Output:

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]

Actually, why this long values of time differes (11624388 and 1338644123032)?

When I start my chronometer from base

chronometer.setBase(SystemClock.elapsedRealtime());

- it always works fine ( "00:00" and rising)

But when I try to set the date from a past Date (f.e. yesterday):

chronometer.setBase(yesterday.getTime());

- it shows "00:0(" and changes every second the latest char to ")", "*", "/" and others

Could you please advise how can I set the chronometer base to a Date object?

解决方案

Actually, why this long values of time differes (11624388 and 1338644123032)?

SystemClock.elapsedRealtime() is the number of milliseconds since the device was turned on. The other values are based off of System.currentTimeMillis(), the number of milliseconds since the Unix epoch.

Could you please advise how can I set the chronometer base to a Date object?

You don't. That is not what Chronometer is for. Quoting the documentation for Chronometer:

You can give it a start time in the elapsedRealtime() timebase, and it counts up from that, or if you don't give it a base time, it will use the time at which you call start().

这篇关于如何设置从Date对象的Andr​​oid天文台基地的时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆