[英]Unexpected java SimpleDateFormat parse exception
我无法理解为什么这几行
Date submissionT;
SimpleDateFormat tempDate = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");
public time_print(String time) {
try {
submissionT=tempDate.parse(time);
}
catch (Exception e) {
System.out.println(e.toString() + ", " + time);
}
}
导致异常并打印出来
java.text.ParseException: Unparseable date: "Tue Mar 31 06:09:00 CEST 2009", Tue Mar 31 06:09:00 CEST 2009
...虽然“不可解决的”时间符合我传递给SimpleDateFormat()的格式字符串..任何想法?
这是一个Locale问题。 采用:
sdf = SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy", Locale.US);
适合我。
public class Main {
public static void main(String[] args)
{
time_print("Tue Mar 31 06:09:00 CEST 2009");
}
static Date submissionT;
static SimpleDateFormat tempDate = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy");
public static void time_print(String time) {
try {
submissionT=tempDate.parse(time);
System.out.println(submissionT);
}
catch (Exception e) {
System.out.println(e.toString() + ", " + time);
}
}
}
格式中的“z”表示TimeZone,Java仅识别某些时区ID。 您可以将TimeZone类中的列表作为字符串数组获取。 CEST没有出现在我刚刚从JDK 1.5生成的列表中
String[] aZones = TimeZone.getAvailableIDs();
for (int i = 0; i < aZones.length; i++) {
String string = aZones[i];
System.out.println(string);
}
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.