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:
问题很简单,我有一个 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: