gpt4 book ai didi

java - java android 中两个日期时间之间没有获得正确的毫秒/秒/分钟

转载 作者:行者123 更新时间:2023-12-02 00:59:26 27 4
gpt4 key购买 nike

我正在开发一个应用程序,其中一个时间保存在 firebase 上,另一个时间是当前用户时间。当应用程序启动时,它会检索带有日期的 Firebase 时间并获取当前用户日期并找到其分钟数。但问题是,当日期相同时,它计算准确,平均第一个日期时间是 28/03/2020 10:00,第二个日期时间是 28/03/2020 11:00。但是,当日期时间是第一个 27/03/2020 10:00 和第二个是 28/03/2020 01:00 时,它不会根据日期计算,它也会根据同一天再次计算并显示 3 小时。如果日期变化太大,结果会显示负号。我搜索太多,但在堆栈溢出上也找不到最佳解决方案。大多数接受的答案都对这个问题执行与我相同的代码,但对我来说没有任何作用。

我的代码是:

SimpleDateFormat format = new SimpleDateFormat("DD/MM/YYYY HH:mm");

String currentTime = format.format(Calendar.getInstance().getTime());

try {
d1 = format.parse(currentTime);
d2 = format.parse(submitTime);
} catch (ParseException e) {
e.printStackTrace();
}

long duration = d1.getTime() - d2.getTime();
Toast.makeText(this, ""+duration, Toast.LENGTH_LONG).show();
int minutes= (int) TimeUnit.MILLISECONDS.toMinutes(duration);

if (minutes>=60)
{
int hrs = (int) TimeUnit.MINUTES.toHours(minutes);
mOut.setText(""+hrs+"h "+minutes+"min");
}
else if (minutes>1440)
{
int days = (int) TimeUnit.MINUTES.toDays(minutes);
mOut.setText(""+days+"days");
}
else
{
mOut.setText(""+minutes);
}

getFinal = Integer.parseInt(timeS)-minutes;

最佳答案

问题主要出在您的SimpleDateFormat

您使用大写“D”,表示“一年中的某一天”,您可能需要小写“d”,表示“月份中的某一天”

您使用大写“Y”,表示“周年”,您可能需要小写“y”表示“年”

关于java - java android 中两个日期时间之间没有获得正确的毫秒/秒/分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60898743/

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