【发布时间】:2022-01-21 13:45:02
【问题描述】:
我需要当前时间和未来特定时间之间的差异,以便我可以将倒数计时器作为参数传递。我有这个操作的功能,但它计算错误。 这是我计算差异的函数
public Date RetriveLeftTime(Date incomingTime) {
DateFormat milisFormat = new SimpleDateFormat("HH:mm:ss");
Date moment = Calendar.getInstance().getTime();
milisFormat.format(moment);
Date configuredTime = ConfigureTime(incomingTime);
milisFormat.format(configuredTime);
long leftTime =configuredTime.getTime()-moment.getTime();
Date result = new Date(leftTime);
result = ConfigureTime(result);
Log.d("Result",result.toString());
return result;
}
用于配置日期详细信息的 ConfigureTime() 函数
public Date ConfigureTime(Date date){
Calendar today = Calendar.getInstance();
int date = today.get(Calendar.DATE);
int year = today.get(Calendar.YEAR);
int day = today.get(Calendar.DAY_OF_WEEK);
int month = today.get(Calendar.MONTH);
int zone = today.get(Calendar.ZONE_OFFSET);
Calendar time = Calendar.getInstance();
time.setTime(date);
time.set(Calendar.YEAR, year);
time.set(Calendar.MONTH, month);
time.set(Calendar.DAY_OF_WEEK, day);
time.set(Calendar.DATE, date);
time.set(Calendar.ZONE_OFFSET,zone);
Log.d("ConfigureTime()",time.getTime().toString());
Log.d("Current Time",today.getTime().toString());
return time.getTime();
}
我看过关于这个问题的类似帖子。我检查并配置了我所有的时间规范,如时区、日期、年份,但仍然得到错误的结果。我不明白为什么会这样。也许我的代码做错了我不知道。我做错了什么? 大多数人建议使用 joda time,但我在切换 joda time 时太过分了。在切换到 joda time 之前有解决方案吗?
【问题讨论】:
-
Joda-Time 是 Java 8 及更高版本中内置的 java.time 类的前身。
标签: java android date date-difference