问题非常简单,我有一个每天或每周安排的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这样的东西可以为我做的话,我不想重新发明轮子。
答案 0 :(得分:3)
工作日文本Tue
可能与您的默认语言环境不匹配。
DateTimeFormatter formatter =
DateTimeFormat.forPattern("EEE HH:mm:ss").withLocale(Locale.ENGLISH);
答案 1 :(得分:2)
您可以使用区域设置。以下代码工作正常。
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