gpt4 book ai didi

java - 如何在 UTC 中倒计时到毫秒

转载 作者:太空狗 更新时间:2023-10-29 13:47:49 25 4
gpt4 key购买 nike

我正在使用一个 api 来获取所有即将上映的电影,并且 api 中的所有日期都以毫秒为单位存储,当我尝试从今天的日期到电影的发行日期倒计时时,倒计时是在我本地的时区。例如,我在东海岸,当倒计时到达晚上 8 点时,它算作新的一天,剩余天数递减

截图如下:

enter image description here

如您所见,这是东海岸晚上 9 点左右的倒计时,所以晚上 8 点应该还有 24 小时,我该如何更改?当然,我希望它在午夜而不是晚上 8 点重置日期。谢谢!

这是我的代码:

  public long getMillisInGMT(long date) {
// We don't care what date format we're going to format to
SimpleDateFormat formatter = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
String formatted = formatter.format(new Date(date));
try {
return formatter.parse(formatted).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}

public void initCountdown(_Release release) {
long releaseDate = release.getDate();
long timeTillRelease = getMillisInGMT(releaseDate) - getMillisInGMT(Calendar.getInstance().getTimeInMillis());
mCountdownTimer = new CountDownTimer(timeTillRelease, 1000) { // adjust the milli seconds here
public void onTick(long millisUntilFinished) {
// 1 sec = 1000 millis
long seconds = millisUntilFinished / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;
mDaysTxt.setText(String.valueOf(days));
mHoursText.setText(String.valueOf(hours % 24));
mMinutesText.setText(String.valueOf(minutes % 60));
mSecondsText.setText(String.valueOf(seconds % 60));
}

public void onFinish() {
mHeaderReleasesTitle.setText("Released on");
mOutNowTxt.setVisibility(View.VISIBLE);
mCountdownLayout.setVisibility(View.GONE);
}
};
mCountdownTimer.start();
}

最佳答案

我不是 100% 确定您的错误从何而来,但我知道我在使用 Date 和 Calendar 库时遇到了很多问题。到目前为止,最好的时间图书馆是 Joda-Time图书馆。如果是我,我会更换库,看看是否能解决问题,然后再进一步排除故障。

要获取当前的 UTC (GMT) 时间,您可以使用 DateTime 库,如下所示:

DateTime.now().withZone(DateTimeZone.UTC)

要将 Release millis 转换为 UTC,您可以使用 DateTime 库,如下所示:

new DateTime(dateInMillis).withZone(DateTimeZone.UTC);

我知道这不是您问题的直接答案,但我无法告诉您我在使用日期和日历库时遇到了多少奇怪的问题。 Joda-Time解决了大多数问题。这是一个了不起的图书馆。

关于java - 如何在 UTC 中倒计时到毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470479/

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