- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 SQLite 数据库加载一个字符串,然后尝试将其转换为 LocalDate,以便我可以将其添加为对象参数,然后比较列表中对象的日期。
但是应用程序崩溃并给出 DateTimeParseException。
这是崩溃的方法,它在我创建 LocalDate 的行处崩溃。
我在这个网站和其他网站上找到并阅读了许多类似的帖子,但遗憾的是我无法弄清楚问题到底是什么。
private void fillEventsArray(){
Cursor data = mDatabaseHelper.getData();
while(data.moveToNext()){
String name = data.getString(1);
String description = data.getString(2);
String time = data.getString(3);
String date = data.getString(4);
LocalDate localDate= LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy/MM/dd"));
LocalTime localTime=LocalTime.parse(time, DateTimeFormatter.ofPattern("HH:mm"));
Event event = new Event(name, description, localTime, localDate);
events.add(event);
}
我以相同的“yyyy/mm/dd”格式保存第 4 列中的数据,例如 2018/11/20。
之前我也尝试过像这样将字符串转换为LodalDate/LocalTime,但也有同样的问题:
String year=date.substring(0,4);
String month=date.substring(5,7);
String day=date.substring(8,10);
LocalDate localDate=LocalDate.of(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
String hour=time.substring(0,3);
String minute=time.substring(4,5);
LocalTime localTime=LocalTime.of(Integer.parseInt(hour),Integer.parseInt(minute));
如果数据库为空会导致错误吗?
如果需要更多信息,请告诉我,我会提供。
Logcat 副本:
2018-11-12 15:48:57.836 12038-12038/com.example.dflavio.calendar E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dflavio.calendar, PID: 12038
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dflavio.calendar/com.example.dflavio.calendar.MainActivity}: java.time.format.DateTimeParseException: Text 'android.support.v7.widget.AppCompatEditText{ceb966d VFED..CL. .F...' could not be parsed at index 0
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: java.time.format.DateTimeParseException: Text 'android.support.v7.widget.AppCompatEditText{ceb966d VFED..CL. .F...' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1948)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDate.parse(LocalDate.java:394)
at com.example.dflavio.calendar.MainActivity.fillEventsArray(MainActivity.java:104)
at com.example.dflavio.calendar.MainActivity.onCreate(MainActivity.java:45)
at android.app.Activity.performCreate(Activity.java:6975)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
正如有人指出的那样,我在如何从编辑文本中获取字符串方面可能犯了一个错误。目前,代码如下所示:
createBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText nameEditText = (EditText) findViewById(R.id.nameEditText);
EditText descriptionEditText = (EditText) findViewById(R.id.descriptionEditText);
EditText timeEditText = (EditText) findViewById(R.id.timeEditText);
EditText dateEditText = (EditText) findViewById(R.id.dateEditText);
String name = nameEditText.getText().toString();
String description = descriptionEditText.getText().toString();
String time = timeEditText.getText().toString();
String date = dateEditText.getText().toString();
if (name.length() != 0){
if (description.length() != 0){
if (time.length() != 0){
if (date.length() != 0){
AddData(name, description, time, date);
nameEditText.setText("");
descriptionEditText.setText("");
timeEditText.setText("");
dateEditText.setText("");
}
}
}
}else{
toastMessage("Fill in all fields.");
}
感谢您提前提供的帮助。
最佳答案
您的数据库似乎包含垃圾;您尝试将“android.support.v7.widget.AppCompatEditText{ceb966d VFED..CL..F...”之类的字符串解析为日期。
关于java - 字符串到 Localdate DateTimeParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53264444/
从 https://api.spacexdata.com/v3/launches 获取日期此日期的格式为:2006-03-25T10:30:00+12:00。我想将它转换为“dd, mm, yyyy”
从 https://api.spacexdata.com/v3/launches 获取日期此日期的格式为:2006-03-25T10:30:00+12:00。我想将它转换为“dd, mm, yyyy”
我正在尝试使用 ThreeTenBP 将日期字符串从服务器转换为日期时间。我的方法如下所示: String toDateTime(String dateString) { DateTimeFo
尝试更改字符串的日期格式但出现 DateTimeException: String oldDate = "2018-12-18T17:04:56+00:00"; String outputFormat
我正在尝试使用 Java OffsetDateTime 解析日期字符串,但出现异常。 字符串如下所示:"20101217180000GMT+0800" 我的方法是这样的: OffsetDateTime
这个问题在这里已经有了答案: Exception when trying to parse a LocalDateTime (1 个回答) 关闭 4 年前。 基本上,我试图将字符串解析为时间戳。 p
我正在从 SQLite 数据库加载一个字符串,然后尝试将其转换为 LocalDate,以便我可以将其添加为对象参数,然后比较列表中对象的日期。 但是应用程序崩溃并给出 DateTimeParseExc
我正在将正常日期解析为 LocalDate 格式。在转换时,我收到一个异常调用。 Caused by: java.time.format.DateTimeParseException: Text '2
以下代码抛出 DateTimeParseException: DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd
我正在尝试从 sql 中解析时间戳对象并且遇到了问题,这是我所拥有的: DateTimeFormatter dateDTF = DateTimeFormatter.ofLocalizedDateTi
我尝试将字符串从 JSON 转换为 ZonedDateTime,就像 static String getWatchTime(JSONObject aJson, JSONObject bJson) {
使用的jdk:1.8 不确定问题是什么,configuredFormat 是有效的,inputTime 也是有效的,真的很困惑问题是什么。 public class Test { public
我正在尝试解析以下日期“Wed, 26 Feb 2020 03:42:25 -0800” String datePattern = "EEE, dd MMM yyyy HH:mm:ss Z"; Dat
我需要以年、月、日和秒为单位计算年龄,我使用 jcalendar 来获取用户输入,但我不断收到 DateTimeParseException 错误,有人可以告诉我如何解决这个问题吗? JDat
这个问题在这里已经有了答案: Is java.time failing to parse fraction-of-second? (3 个答案) 关闭 7 年前。 LocalDateTime.par
目标 为可以处理以下格式之一的输入的 LocalDate 实例提供灵活的解析器: 年 年月 年月日 实现尝试 下面的类尝试处理第一个和第二个模式。解析适用于年份输入,但年份 + 月份会导致下面列出的异
我想用 DateTimeFormatter 将像 Wed, 21 Oct 2016 07:28:00 GMT 这样的 GMT 日期解析成 Instant .为了创建模式,我使用了官方文档:DateTi
我正在尝试将字符串转换为 Java 11 中的 Date 对象。下面的代码给出了异常。尝试了不同的方法,到目前为止没有运气。对解决此错误消息有任何帮助吗? String date = 'Mon Aug
我正在尝试解析日期以将其转换为纪元。我尝试了 similar question here 的解决方案没有成功: String date = "Jun 4 2015"; DateTimeForma
我正在尝试使用 Java 8 DateTimeFormatter 类来解析西类牙语的时间字符串。经过几个小时的搜索,我找不到任何提示。返回的错误是: java.time.format.DateTime
我是一名优秀的程序员,十分优秀!