使用SimpleDateFormat在Java中进行日期解析

踢脚

我想以以下格式解析日期:“ 2020年8月26日星期三11:26:46 GMT + 0200”转换为日期。但是我不知道该怎么做。我尝试了这个:

SimpleDateFormat parser = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss z");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = parser.parse(split[0]); //error line
String formattedDate = formatter.format(date);

我收到此错误:无法解析的日期:“ 2020年8月26日星期三11:26:46 GMT + 0200”。我的日期格式不正确吗?如果可以的话,请给我指出正确的方向吗?

Arvind Kumar Avinash:

我建议您停止使用过时且容易出错的java.util日期时间API和SimpleDateFormat切换到现代 java.time日期时间API和相应的格式API(java.time.format)。Trail:Date Time了解更多有关现代日期时间API的信息

import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        // Given date-time string
        String dateTimeStr = "Wed Aug 26 2020 11:26:46 GMT+0200";

        // Parse the given date-time string to OffsetDateTime
        OffsetDateTime odt = OffsetDateTime.parse(dateTimeStr,
                DateTimeFormatter.ofPattern("E MMM d u H:m:s zX", Locale.ENGLISH));

        // Display OffsetDateTime
        System.out.println(odt);
    }
}

输出:

2020-08-26T11:26:46+02:00

使用旧版API:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Main {
    public static void main(String[] args) throws ParseException {
        // Given date-time string
        String dateTimeStr = "Wed Aug 26 2020 11:26:46 GMT+0200";

        // Define the formatter
        SimpleDateFormat parser = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'Z", Locale.ENGLISH);

        // Parse the given date-time string to java.util.Date
        Date date = parser.parse(dateTimeStr);
        System.out.println(date);
    }
}

输出:

Wed Aug 26 10:26:46 BST 2020

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java SimpleDateFormat进行错误的日期解析

使用Gson在Java中进行JSON解析

Java的无法解析日期的SimpleDateFormat

使用SimpleDateFormat无法解析的日期

java-使用SimpleDateFormat时无法解析的日期

解析日期以在JPQL查询中进行比较

如何使用SimpleDateFormat解析多种格式的日期

使用 SimpleDateFormat Android 的不可解析日期

使用毫秒对dateFormat进行SimpleDateFormat解析的问题

Simpledateformat无法解析的日期

SimpleDateFormat解析错误的日期

为什么使用SimpleDateFormat从字符串中解析日期时得到错误的结果?(Java)

使用 Notepad++ 对 Java 代码进行正则表达式转换 - 日期 .format 到 SimpleDateFormat

使用googleway在R中进行地址解析

使用domDocument在PHP中进行XML解析

使用SimpleDateFormat.java解析时区

使用新的Java 8 DateTimeFormatter进行严格的日期解析

在熊猫数据框中进行日期解析和时区调整

Java / Kotlin:为什么Jackson解析日期与SimpleDateFormat不同?

Java simpledateformat无法解析的日期,即使格式似乎正确

SimpleDateFormat java.text.ParseException:无法解析的日期

无法使用 SimpleDateFormat 解析字符串日期

使用SimpleDateFormat.parse()解析日期时出现NumberFormatException

使用SimpleDateFormat解析svn log -xml日期输出

使用SimpleDateFormat的日期解析不一致

如何使用SimpleDateFormat仅用月份和年份解析日期

为什么Java的SimpleDateFormat会对此进行解析

SimpleDateFormat 不解析 IST 日期

无法解析的日期例外与SimpleDateFormat的