joda-time 解析日期和时间中的解析异常

Parse exception in joda-time parsing day and time

问题很简单,我有一个 TimerTask 将每天或每周安排一次。 (取决于配置文件中给定的开始日期和时间段)。 因此,在配置文件中,我指定了星期几和执行时间以及执行间隔。但是 Joda-Time 拒绝与我的约会对象一起工作:(

这里是基本输入:

String            input     = "Tue 12:00:00";
DateTimeFormatter formatter = DateTimeFormat.forPattern("EEE HH:mm:ss");
DateTime dateTime = DateTime.parse(input, formatter); // Here parse exception is thrown...

异常消息:java.lang.IllegalArgumentException: Invalid format: "Tue 12:00:00"

有人可以向我解释为什么我不能这样解析这个日期,并且可能会指出正确的方向来解决此类问题。当然,我可以手动解析日期并在日历中设置内容,但如果有像 Joda-Time 这样的东西可以为我做这件事,我不想重新发明轮子。

工作日文本 Tue 可能与您的默认语言环境不匹配。

DateTimeFormatter formatter = 
        DateTimeFormat.forPattern("EEE HH:mm:ss").withLocale(Locale.ENGLISH);

您可以使用语言环境。以下代码运行良好。

import java.util.Locale;

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class Test22 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        DateTime currentDate = new DateTime();
        DateTimeFormatter dtf = DateTimeFormat.forPattern("EEE HH:mm:ss").withLocale(Locale.ENGLISH);
        String formatedDate = dtf.print(currentDate);
        System.out.println(formatedDate);
        DateTime now = dtf.parseDateTime(formatedDate);
        System.out.println(now);
    }

}

输出:

Thu 23:36:33

2000-12-28T23:36:33.000+06:00

资源Link: