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

Java日期格式转换:正确SimpleDateFormat格式及参考资源咨询

问题解答

1. 正确的日期格式与修改后的代码

你的输入日期字符串是2019-09-30T00:00:00.000+05:30,原代码里的SimpleDateFormat("yyyy-MM-dd HH:mm:ss")完全不匹配输入结构——输入里有T作为日期和时间的分隔符,还有毫秒部分.000以及时区偏移+05:30,所以格式字符串必须精准对应这些部分。

方案一:使用传统的SimpleDateFormat(不推荐,线程不安全)

正确的格式字符串应该是:"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"

  • 'T':匹配输入里的字面量T,需要用单引号转义避免被解析为模式字符
  • SSS:对应毫秒部分.000
  • XXX:对应时区偏移格式+05:30

修改后的代码:

public static String parseDateAndTimeStringCust(String datestring) {
    if(datestring.length()>=10){
        SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        try {
            String fDate = new SimpleDateFormat("dd MMM yyyy").format(inputFormat.parse(datestring));
            return fDate;
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
    }
    return datestring;
}

方案二:使用Java 8+的java.time API(强烈推荐)

SimpleDateFormat是线程不安全的,Java 8引入的java.time包是线程安全且设计更合理的日期时间API,推荐优先使用:

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public static String parseDateAndTimeStringCust(String datestring) {
    if(datestring.length()>=10){
        try {
            ZonedDateTime zonedDateTime = ZonedDateTime.parse(datestring);
            return zonedDateTime.format(DateTimeFormatter.ofPattern("dd MMM yyyy"));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    return datestring;
}

这里不需要手动指定输入格式,因为你的输入符合ISO-8601标准,ZonedDateTime.parse()可以直接解析。

2. 构建日期格式可参考的权威资源

  • Java官方API文档:
    • 对于SimpleDateFormat:查看Java SE文档中该类的说明,里面详细列出了所有可用模式字母(比如y代表年、M代表月、d代表日等)及其具体含义。
    • 对于java.time.format.DateTimeFormatter:同样参考Java SE官方文档,它的模式字母和SimpleDateFormat大部分兼容,但有更丰富的扩展,文档里也有完整的模式规则说明。
  • Oracle官方日期时间指南:Oracle提供的Java日期时间教程,会讲解如何正确使用日期格式化工具,以及常见日期时间处理场景的最佳实践。

这些资源由官方维护,内容准确且具备权威性,是构建日期格式的首选参考。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:56:57