Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SimpleDataFormat将字符串转换为日期_Java_String_Date - Fatal编程技术网

Java 使用SimpleDataFormat将字符串转换为日期

Java 使用SimpleDataFormat将字符串转换为日期,java,string,date,Java,String,Date,我想将字符串转换为日期,但出现以下异常: java.text.ParseException: Unparseable date: "Thu Jan 27 14:47:58 CET 2011" at java.text.DateFormat.parse(DateFormat.java:335) at de.datev.boxi.Main.run(Main.java:36) at com.crystaldecisions.sdk.plugin.desktop.program.

我想将
字符串
转换为
日期
,但出现以下异常:

java.text.ParseException: Unparseable date: "Thu Jan 27 14:47:58 CET 2011"
    at java.text.DateFormat.parse(DateFormat.java:335)
    at de.datev.boxi.Main.run(Main.java:36)
    at com.crystaldecisions.sdk.plugin.desktop.program.internal.ProgramWrapper.main(ProgramWrapper.java:174)
我应该使用哪些参数将字符串格式化为日期

我的程序看起来像:

try {
    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Date d1 = sdf.parse("Thu Jan 27 14:47:58 CET 2011");
    System.out.println(d1);
} catch (ParseException ex) {
    ex.printStackTrace();
}
尝试:

new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
尝试:

new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
在Java中解析如此“复杂”的时间戳总是很棘手的。我也有同样的经历

这两种Java在解析您的时区时都有问题

或者更可能的是,默认区域设置与您的时间字符串不匹配,我建议将英语区域设置添加到您的通话中:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
我总是建议添加这个参数,因为根据执行环境的不同,应用程序可能在某些机器上工作,而在其他机器上失败,这取决于默认的语言环境。

在Java中解析这种“复杂”的时间戳总是很棘手的。我也有同样的经历

这两种Java在解析您的时区时都有问题

或者更可能的是,默认区域设置与您的时间字符串不匹配,我建议将英语区域设置添加到您的通话中:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);

我始终建议添加此参数,因为根据执行环境,您的应用程序可能在某些计算机上工作,而在其他计算机上失败,具体取决于默认的区域设置。

感谢您的解决方案!感谢您的解决方案!