[英]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.