Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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 Android 7+;_Java_Android_Date_Simpledateformat_Datetime Parsing - Fatal编程技术网

Java Android 7+;

Java Android 7+;,java,android,date,simpledateformat,datetime-parsing,Java,Android,Date,Simpledateformat,Datetime Parsing,我试图解析一个日期并将其转换为时间戳 在安卓6上它可以工作,但在安卓7上它抛出了一个异常。 有人能告诉我怎么修吗 private long getCorrectDate(String date) { SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z (z)"); Date parsedDate = null; try { Logger.e(

我试图解析一个日期并将其转换为时间戳

在安卓6上它可以工作,但在安卓7上它抛出了一个异常。 有人能告诉我怎么修吗

private long getCorrectDate(String date) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z (z)");
    Date parsedDate = null;
    try {
        Logger.e("PARSE DATE : "+date);
        parsedDate = dateFormat.parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
    Logger.e("" + date + " TO " + timestamp.getTime());
    return timestamp.getTime();
}
java.text.ParseException:不可解析日期:“Thu Feb 15 2018 10:55:55 格林尼治标准时间+0000(UTC)”


输入有星期和月份的英文名称,因此需要指定
java.util.Locale

如果创建不带区域设置的
SimpleDataFormat
,它将使用设备的默认设置。您的代码仅在默认值为英语时有效,否则需要指定:

// use Locale.US or Locale.ENGLISH, I think both will work
SimpleDateFormat dateFormat =
    new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z (z)", Locale.US);

实际上,如果您确定输入始终是英文的,请使用相应的区域设置,而不是依赖默认设置。

我不认为您搜索任何东西?您的SimpleDataFormat没有指定
区域设置,因此它使用系统默认设置,而不是<代码> LoaLe.Eng/<代码>显示已解析日期的日志,顺便考虑一下,把长期过时的、臭名昭著的麻烦代码< SimpleDateFormat >代码>和朋友添加到Android项目中,以便使用< java > java >时间>代码>,即现代Java日期和时间API。和他一起工作真是太好了。谢天谢地,我不知道这件事可能是重复的