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

Java日期格式化求助:指定格式处理日期及解析代码错误修正

问题解答

1. 如何用指定格式格式化同一日期数据?

在Java里,你可以按以下步骤实现日期的格式化:

  • 先确定你需要的格式字符串,这里一定要注意格式符的正确使用(比如MM代表两位月份,mm是分钟,yyyy是四位年份,dd是两位日期,这些细节很容易踩坑)
  • 创建日期格式化器实例:Java 8之前用SimpleDateFormat,Java 8及以后更推荐用java.time包下的DateTimeFormatter(线程安全,API设计更清晰)
  • 调用格式化方法,把日期对象转换成指定格式的字符串

举个实际例子:

// Java 8之前的实现方式
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = sdf.format(now);
System.out.println(formattedDate); // 输出类似 2024-05-20 14:30:00

// Java 8+ 推荐的实现方式
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDate = now.format(formatter);
System.out.println(formattedDate);

2. 修正你的日期解析代码问题

你的代码问题出在格式字符串的符号使用错误:你写的yyyy-mm-dd里,mm代表的是分钟,而不是月份!所以解析2018-05-23时,程序把05当成了分钟,月份则默认使用1月(Jan),这就导致输出不符合预期。

正确的月份格式符是大写的MM,修正后的代码如下:

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

public class Testing { 
    public static void main(String[] args) throws ParseException { 
        String format = "yyyy-MM-dd"; // 把小写mm改成大写MM
        String date = "2018-05-23"; 
        Date date2 = new SimpleDateFormat(format).parse(date); 
        System.out.println(date2); // 现在会输出 Tue May 23 00:05:00 IST 2018
    } 
}

另外补充一句:如果你的项目是基于Java 8及以上版本,强烈建议使用java.time包下的类来处理日期,避免SimpleDateFormat的线程安全问题,示例代码如下:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.ZoneId;
import java.util.Date;

public class Testing {
    public static void main(String[] args) {
        String format = "yyyy-MM-dd";
        String dateStr = "2018-05-23";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
        LocalDate localDate = LocalDate.parse(dateStr, formatter);
        // 如果需要转换成Date对象(兼容旧代码)
        Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
        System.out.println(date); // 同样输出预期结果
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:32:08