java - 当日期属于不同年份时,日历毫秒差异给出错误
问题描述
我正在尝试计算倒数计时器的两个日期之间的毫秒差。当两个日期属于同一年时可以,但是当其中一个日期属于另一年时,它会给我负毫秒值,所以countdowntimer
跳到onFinish()
.
我该如何解决这个问题?
// tarih = 01/01/2020 and zaman = 00:00, now date is in 2019
public long getCalendarTimeInMillis(String tarih,String zaman){
String[] tarihParts = tarih.split("\\/");
String[] zamanParts = zaman.split("\\:");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MONTH, Integer.parseInt(tarihParts[1])-1);
calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(tarihParts[0]));
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(zamanParts[0]));
calendar.set(Calendar.MINUTE,Integer.parseInt(zamanParts[1]));
calendar.set(Calendar.SECOND,00);
Calendar now = Calendar.getInstance();
long left = calendar.getTimeInMillis() - now.getTimeInMillis() ;
System.out.println(left/1000/60/60/24);
return left;
// sout result : -354
}
解决方案
推荐阅读
- python - 制作大量重复子字符串时如何避免 MemoryError?
- html - 如何根据规范使背景图像响应
- ios - 无法通过 CocoaPods 构建 React Native 0.61.1
- c - 用C在闪存上写一个值
- android - android如何将海拔添加到片段
- sql - 更新声明,忽略重复值
- azure - 将增量数据从 AWS S3 复制到 Azure Data Lake Storage Gen2 失败
- git - 如何使用 git 简单地查看以前的版本而不还原或重置?
- android - 排毒构建成功,但排毒测试失败
- wpf - 为什么格式错误的 XAML 似乎编译然后在运行时失败?