如何使用SimpleDateFormat设置日期格式

2022-08-24 00:00:00 simpledateformat java

我无法设置日期格式。 dateFormat.format()接受Date作为参数。因此我创建了一个新的Date()

它显示以下Date()方法已弃用,并且我在运行时出现以下异常。

异常:

Exception in thread "main" java.lang.IllegalArgumentException at
java.util.Date.parse(Date.java:598)


public class MyDate {
    public static void main(String[] args) {


        Date date = new Date("2012-02-16T00:00:00.000-0500");

        SimpleDateFormat dateFormat = new SimpleDateFormat(
                "dd-MMM-yyyy HH:mm:ss");
        String stringDate = dateFormat.format(date);

        System.out.println(stringDate); // how do I test this conversion??

    }
}
我的数据库日期格式为-2012-02-16T00:00:00.000-0500 我需要将其转换为以下格式的字符串:DD-MMM-yyyy hh:mm:ss

我正在使用Java6


解决方案

如果您想读入日期"2012-02-16T00:00:00.000-0500",您可能应该使用SimpleDateFormatparse,如下所示:

DateFormat parseFormat = new SimpleDateFormat(
        "yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = parseFormat.parse("2012-02-16T00:00:00.000-0500");

与您的其余代码一起写道:

16-Feb-2012 05:00:00
SimpleDateFormat documentation中列出了解析格式模式字母。T用撇号转义。

此答案假定为Java 7,否则您将使用Java 8中的新date & time API

相关文章