gpt4 book ai didi

android - 如何从 Date 对象设置 Android Chronometer 基准时间?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:20 26 4
gpt4 key购买 nike

我遇到了从特定时间开始计时器的问题。有一个 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() +"]");

输出:

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]

实际上,为什么这么长的时间值不同(11624388 和 1338644123032)?

当我从基地开始计时

chronometer.setBase(SystemClock.elapsedRealtime());

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

但是当我尝试从过去的日期(例如昨天)设置日期时:

chronometer.setBase(yesterday.getTime());

- 它显示“00:0(”并每秒将最新的字符更改为“)”、“*”、“/”等

你能告诉我如何将计时表基数设置为日期对象吗?

最佳答案

我实际上遇到了类似的问题(日期来自外部服务,而不是数据库),我想显示日期有多旧。

事实证明这很简单:

long lastSuccess = serviceDate.getTime(); //Some Date object
long elapsedRealtimeOffset = System.currentTimeMillis() - SystemClock.elapsedRealtime();
pollAgeView.setBase(lastSuccess - elapsedRealtimeOffset);
pollAgeView.start();

关于android - 如何从 Date 对象设置 Android Chronometer 基准时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com