【问题标题】:convert string to joda datetime gets stuck将字符串转换为 joda datetime 卡住了
【发布时间】:2014-03-10 19:51:40
【问题描述】:

我正在尝试将此字符串:2014-01-01 00:00:00 转换为 Joda DateTime

我尝试了以下方法:

public static DateTime SimpleIso8601StringToDateTime(String date) {
    DateTimeFormatter df = DateTimeFormat.forPattern(CONSTS_APP_GENERAL.SIMPLE_DATE_FORMAT);
    return df.parseDateTime(date);
}

还有以下内容:

public static DateTime SimpleIso8601StringToDateTime(String date) {
    DateTime dtDate = DateTime.parse(date, DateTimeFormat.forPattern(CONSTS_APP_GENERAL.SIMPLE_DATE_FORMAT));
    return dtDate;
}

在哪里

public static final String SIMPLE_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";

但是,使用调试器,我到达了格式化行,然后在尝试处理它时,程序光标永远不会回来。

我应该提到这是一个 Android 项目。

任何想法可能是什么问题?

【问题讨论】:

    标签: java jodatime datetime-format


    【解决方案1】:

    这是因为 2014-01-01 00:00:00 与模式 yyyy-MM-dd HH:mm:ss.SSS 不匹配——您输入的秒数没有小数部分。

    结果是引发了一个未处理的异常——我不熟悉 Android 是如何处理这些异常的,除非你 set a handler,否则线程可能会死掉。但是将parse() 调用放在try 块中应该可以让你恢复。

    【讨论】:

    • 谢谢。但情况似乎并非如此。我已经更改了模式以完美匹配字符串,但徒劳无功。我尝试了多种方法将该字符串转换为 DateTime 或 LocalDate ,但均未成功。它始终执行相同的操作,当我到达转换行时,程序光标消失,好像在后台发生了什么事情,并且永远不会回来,没有异常或崩溃的迹象。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2017-04-10
    • 2015-04-09
    • 2011-06-07
    • 2011-09-09
    • 1970-01-01
    • 2021-03-31
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多