【问题标题】:how to use timeStamp in Chronometr Android?如何在 Chronometr Android 中使用时间戳?
【发布时间】:2014-02-04 19:02:33
【问题描述】:

我有 CountDownChronometr 用于在 android 中显示计时器。 我将此库用于 CountDownChronometr : https://github.com/jgilfelt/android-countdown

示例时间戳为:1391654025

使用此时间戳时输出为:1:07:37:44。这个输出是真的,但我想在 chronomter 中显示乘法(天 * 小时)。例如:31:37:44

我的 CountDownChronometr 代码:

String ss = "1391654025";
c.setTimeInMillis(Long.parseLong(ss) * 1000);

System.out.print(c.toString());
Log.e("Expire", c.toString());
CountdownChronometer.setBase(time.getTime());
CountdownChronometer.start();

和布局:

 <com.domain.Extra.CountdownChronometer
        android:id="@+id/CountdownChronometer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="5sp"
        android:text="LastTime"
        android:textSize="20sp" />

谢谢。

【问题讨论】:

  • PHP 在哪里发挥作用?
  • 好的。我从 webservice 获取数据。但我想从上面的时间戳显示时间
  • @sr.farzad 除非您对提供数据的 Web 服务器有一定的控制权,否则这里根本不涉及 PHP。您应该删除标签并编辑您的标题。
  • 我更改了标题和额外的描述
  • 你是怎么得到 1:07:37:44 的?你能把那行贴出来吗?

标签: android timestamp chronometer


【解决方案1】:

我想通了,我需要获取时间之间的差异,将其添加到系统时间并找到我的时区的偏移量,因为时间是 UTC

long system = SystemClock.elapsedRealtime();
long t = incidentStartTime-System.currentTimeMillis();

timer.setBase((system+t)+14400000);
timer.start();

参考this

编辑 只需在开始时花点时间,在结束时获得差异。将此添加到您的时间戳中,您应该会很好。

long start = System.currentTimeMillis();

long difference = System.currentTimeMillis() - start;

long newStamp = 1365679237087 + difference;

我认为您可能会遇到问题,因为您的时间戳使用毫秒 - Chronometer.setBase() 是否支持毫秒时间戳?

查看Chronometer source,我看不到毫秒,只有秒。

【讨论】:

  • 如何使用incidentStartTime?我不知道
  • incidentStartTime 在哪里定义?
  • 你应该读取你开始时间戳的时间,然后在你停止的时间,然后取差并将其添加到时间戳@sr.farzad
猜你喜欢
  • 2018-07-06
  • 2014-11-20
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
相关资源
最近更新 更多