android - 如何比较新日期是否在android中的旧日期之后
问题描述
我正在尝试查看如何比较新日期是否在旧日期之后,如果这样的话,firebase 数据库中不会显示任何数据。我遇到了麻烦,因为我的应用程序在测试时崩溃了,我相信我做错了。有人可以帮我解决这个问题吗?下面是我的代码。提前致谢
//Code
if(dataSnapshot.exists()){
//progressBar.setVisibility(View.GONE);
for (DataSnapshot postsnapshot : dataSnapshot.getChildren()) {
UserInformation2 upload=postsnapshot.getValue(UserInformation2.class);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("M-dd-yyyy");
//String now = simpleDateFormat.format(new Date());
Date d=new Date();
String AdCreationDate = postsnapshot.child("created").getValue(String.class);
//SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd")
try {
Date new_date = simpleDateFormat.parse(String.valueOf(d));
Date old_date = simpleDateFormat.parse(AdCreationDate);
if(new_date.after(old_date)){
// Your time expired do your logic here.
Toast.makeText(getContext(), "Your data expired", Toast.LENGTH_SHORT).show();
}else{
myUploads.add(upload);
recyclerView.invalidate();
}
} catch (ParseException e) {
e.printStackTrace();
}
//simpleDateFormat.format(d);
//Date e=new Date(old);
}
linearLayoutWithoutItems.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
堆栈跟踪
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp.tout, PID: 22667
java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:638)
解决方案
看起来错误实际上与
Date new_date = simpleDateFormat.parse(String.valueOf(d));
如果您注释掉该行,然后将 if 语句更新为
if(d.after(old_date)){
您不需要解析新日期,因为它已经是一个 Date 对象。您只需要解析快照中的日期,因为它是一个字符串。
我还将新的日期变量更改d
为更有意义的东西,因为它有助于代码的可读性,并且命名变量的 Java 标准是使用驼峰式大小写,其中第二个单词大写,没有下划线,即“oldDate”。养成遵循这些约定的习惯是件好事。
推荐阅读
- python-3.x - Python 获取处理特殊字符的 url 请求
- firebase - 在颤动中合并多个firebase流
- reactjs - React Virtuoso 加载更多按钮
- pytorch - pytorch Dataloader - 如果输入数据返回多个训练实例
- mouseevent - 为什么这段代码不能从 SDL 事件轮询中清除鼠标事件?
- prometheus - 我们可以为单个 prometheus 服务器使用两个不同的 prometheus.yml 文件吗
- nuget - PDB 文件未打包在 *.nupkg 中
- jenkins - level":"info","msg","500 Internal server error: failed parse webhook:Invalid webhook signature"
- c++ - 来自 Visual C++ 的奇怪错误:Promise 类型没有默认构造函数
- javascript - 如何根据两个指针事件计算旋转