当前位置: 首页 > 知识库问答 >
问题:

如何比较日期时,其中之一是在Android字符串格式?

黄意智
2023-03-14

我对Android非常陌生。我从服务器上得到了一个字符串形式的日期,格式如下

2012-08-17 00:00:00

我想将这个字符串与当前日期进行比较,找出以年、月和日为单位的日期之间的差异。

我试着用下面的代码来处理它

Date currentDate = new Date(System.currentTimeMillis());
Log.v("@@@@@@@@@","Current Date: " + currentDate);
Date passDate = new SimpleDateFormat().parse(passDateString);
Log.v("@@@@@@@@@","Pass Date: " + passDate);
dateDifference = passDate.compareTo(currentDate);

但它返回了以下异常

04-15 12:08:29.101: V/@@@@@@@@@(1161): Current Date: Sun Apr 15 12:08:29 GMT+01:00 2012
04-15 12:08:29.101: W/System.err(1161): java.text.ParseException: Unparseable date: 2012-08-17 00:00:00
04-15 12:08:29.111: W/System.err(1161):     at java.text.DateFormat.parse(DateFormat.java:645)
04-15 12:08:29.111: W/System.err(1161):     at org.apis.PassesListItemAdapter.getView(PassesListItemAdapter.java:77)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.AbsListView.obtainView(AbsListView.java:1315)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.makeAndAddView(ListView.java:1727)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.fillDown(ListView.java:652)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.fillFromTop(ListView.java:709)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.layoutChildren(ListView.java:1580)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.AbsListView.onLayout(AbsListView.java:1147)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:909)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1049)
04-15 12:08:29.111: W/System.err(1161):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1744)
04-15 12:08:29.111: W/System.err(1161):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-15 12:08:29.111: W/System.err(1161):     at android.os.Looper.loop(Looper.java:144)
04-15 12:08:29.111: W/System.err(1161):     at android.app.ActivityThread.main(ActivityThread.java:4937)
04-15 12:08:29.111: W/System.err(1161):     at java.lang.reflect.Method.invokeNative(Native Method)
04-15 12:08:29.111: W/System.err(1161):     at java.lang.reflect.Method.invoke(Method.java:521)
04-15 12:08:29.111: W/System.err(1161):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-15 12:08:29.111: W/System.err(1161):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-15 12:08:29.111: W/System.err(1161):     at dalvik.system.NativeStart.main(Native Method)

共有2个答案

何高歌
2023-03-14
Date currentDate = new Date(System.currentTimeMillis());
Log.v("@@@@@@@@@","Current Date: " + currentDate);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date passDate = dateFormat.parse(passDateString);
Log.v("@@@@@@@@@","Pass Date: " + passDate);
dateDifference = passDate.compareTo(currentDate);

使用此链接可以获得两个日期之间的差异,现在您只需比较两个日期。

秦信瑞
2023-03-14

添加要解析的日期的格式:

 passDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2012-08-17 00:00:00");
 类似资料:
  • 我有两个格式为m/d/yyyy的字符串日期。例如“2012年11/1”、“2013年1/2”。我正在用JavaScript编写一个函数来比较两个字符串日期。我的函数的签名是如果string1传递的日期晚于string2传递的日期,则返回true,否则返回false。因此,isLater(“1/2/2013”,“11/1/2012”)应返回true。我如何为此编写一个JavaScript函数?

  • 问题内容: 所以我正在使用它根据每个字符的Unicode值与字符串进行字典顺序比较,并返回一个整数。这是一个代码示例。 在Java中比较日期是否错误? 在测试中,我没有遇到意外结果的情况。如果不是必须的话,我真的不想在字符串中创建Date对象,因为我是在一个长时间运行的循环中执行此操作的。 *根据下面的答案, *Ninja Edit Gleaning可以将日期与字符串进行比较,如果格式正确,则没有

  • 问题内容: 如果我必须找到一个字符串名称并且它位于表foo中,那么下面是正常过程, 我试图检查它的两个变体, 工作正常 没有正常工作 谁能解释一下第二个为什么不起作用? 提前致谢 问题答案: CHAR类型 使用空字节 将字符串填充到字段的长度(而VARCHAR添加定界符以指示字符串的末尾-因此忽略了末尾的额外数据( 我的意思是空字节 )),因此,在字符串末尾有空格的比较最终将忽略那些。前导空格很重

  • 我会如何比较以下两个日期?

  • 我在android studio中使用firebase创建了一个聊天应用程序,我的所有活动都正常运行,除了日期显示, 我想设置日期在一次如果它是相同的否则显示新的日期如果它是不相同的上一个日期我试图设置但它显示一些错误 这里是错误 我获取当前日期 然后把它交给聊天室。java使用按钮。OnclickListner 这是我的适配器 有人知道怎么解决这个问题吗?

  • 问题内容: 我想知道是否有一种方法可以比较android中大于或>的字符串。 可以说我有这个: 因此,如果在数字EditText字段中输入9,则输出TextView将显示50。 我有很多不同的数字,它们将=一个不同的数字,但是如果我想将10、11、12、13等设置为=,该怎么办? 100? 有没有办法通过使用这样的东西来做到这一点? 还是在android中有某种通配符 我知道如果我将*替换为零,它