java - 如何将日期 TextView 转换为 Long 以与当前日期进行比较

标签 java android date

我有一个关于日期比较的问题。我有一个来自 TextView 的日期(通常存储在 SQLite 文本字段中)。 TextView rowduedate 带有一个日期,其值为:“2012/10/01 15:16” 如果我对下面粘贴的代码进行注释,它可以正常工作并显示 R.id.rowduedate。所以它不是空的。但是我在 LogCat 中收到以下错误:

11-01 15:16:55.445: E/AndroidRuntime(783): FATAL EXCEPTION: main
11-01 15:16:55.445: E/AndroidRuntime(783): java.lang.NumberFormatException: Invalid   long: ""
11-01 15:16:55.445: E/AndroidRuntime(783):  at   java.lang.Long.invalidLong(Long.java:125)
11-01 15:16:55.445: E/AndroidRuntime(783):  at java.lang.Long.parseLong(Long.java:346)
11-01 15:16:55.445: E/AndroidRuntime(783):  at java.lang.Long.parseLong(Long.java:319)
11-01 15:16:55.445: E/AndroidRuntime(783):  at com.android.demo.notepad3.Notepadv3$1.setViewValue(Notepadv3.java:100)

这是代码:

TextView dueDate = (TextView) view.findViewById(R.id.rowduedate);
String due = (String) dueDate.getText().toString();

if(due!=null){
Long longDue = Long.parseLong(due);
String now = new Date().toString();
Long longNow = Long.parseLong(now);

if(longDue <= longNow){

       dueDate.setTextColor(Color.RED);
}               
}

最佳答案

您需要告诉您的代码日期是如何格式化的,以便它可以从中提取时间。

String strDate = "2007-12-25";
SimpleDateFormat Formatter = new SimpleDateFormat("yyyy/MM/dd");
Date myDate    = Formatter.parse(strDate);

关于java - 如何将日期 TextView 转换为 Long 以与当前日期进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180208/

相关文章:

java - 无限循环试图遍历 Java 中的日期

java - java中月份全部小写的字符串到日期

java - 找出java中LSD计数排序程序中出现java.lang.NoClassDefFoundError的原因

java - 部署未找到 MappingExeption 实体类的 portlet 时出现 Liferay 异常

java - 如何找到当月最后一天的天数(整数)

android - 未执行异步任务 doInBackground

java - 我的问题是为什么按下按钮时我输入的文本不会显示在另一个 TextView 中?

java - 在键/值对中仅使用一个键有效地查找值,时间复杂度明智 : Java

java - 从 JDBC 检索值并使用 JSTL 标记调用方法

java - 带定制适配器的 NPE