我有一个日期字符串“Sat Jan 28 00:00:00 IST 2012”,我正在尝试使用Joda的DateTimeFormatter解析它。我有以下代码,不知道在哪里,它出错了。
DateTimeFormatter dateFmt = DateTimeFormat
.forPattern("EEE MMM dd HH:mm:SS ZZZ yyyy");
DateTime dateTime = dateFmt.parseDateTime(dateString);
异常:java.lang.IllegalArgumentException:格式无效:“2012年1月28日00:00:00 IST 2012”在“IST 2012”格式错误。请帮我解决这个问题。谢谢你的帮助。
答案 0 :(得分:2)
IST
时区,它只能识别getAvailableIds()
答案 1 :(得分:1)
使用zzz
(小写),而不是ZZZ
(大写)。来自the API docs:
z time zone text Pacific Standard Time; PST
Z time zone offset/id zone -0800; -08:00; America/Los_Angeles
答案 2 :(得分:0)
我不知道为什么,但如果我使用SimpleDateFormat
代替DateTimeFormatter
,它就可以了。
CODE:
public static void main(String[] args) throws ParseException {
String FORMAT = "EEE MMM dd HH:mm:SS zzz yyyy";
String dateString = "Sat Jan 28 00:00:00 IST 2012";
SimpleDateFormat dateFormat = new SimpleDateFormat(FORMAT);
Date date = dateFormat.parse(dateString);
System.out.println(new DateTime(date));
DateTimeFormatter dateFmt = DateTimeFormat.forPattern(FORMAT);
// System.out.println(dateFmt.parseLocalDateTime(dateString));
// System.out.println(dateFmt.parseDateTime(dateString));
System.out.println(dateFmt.parseLocalTime(dateString));
}