You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中无法解析格式为`Sun Apr 10 21:26:54 +05:30 2022`的日期字符串

解决SimpleDateFormat解析带中间时区偏移的日期字符串问题

你的解析失败主要有两个原因,对应调整即可解决:

  • 小时格式符错误:你用的hh是12小时制格式,但目标日期里的21是24小时制,必须换成HH
  • 时区格式符不匹配:带冒号的时区偏移(如+05:30)需要用XXX来匹配,X仅支持不带冒号的偏移或单字符时区标识,Z也只匹配不带冒号的四位偏移(如+0530)

正确的日期模式为:E MMM dd HH:mm:ss XXX yyyy

另外注意必须指定英文Locale,避免系统默认非英文环境下无法解析英文的星期、月份名称,示例代码如下:

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

public class ExifDataExtractor {
    public static void main(String[] args) throws Exception {
        String dateStr = "Sun Apr 10 21:26:54 +05:30 2022";
        SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd HH:mm:ss XXX yyyy", Locale.ENGLISH);
        Date parsedDate = sdf.parse(dateStr);
        System.out.println(parsedDate);
    }
}

运行这段代码即可成功解析目标日期字符串,不会再抛出ParseException。

内容的提问来源于stack exchange,提问作者NothingIsIrrational

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:10:31