【问题标题】:How to convert a date to dd.MM.yyyy format in Java? [duplicate]如何在 Java 中将日期转换为 dd.MM.yyyy 格式? [复制]
【发布时间】:2015-08-14 04:16:23
【问题描述】:

如何将日期(Mon Jan 12 00:00:00 IST 2015) 转换为MM.dd.yyyydd.MM.yyyy 格式?

我尝试使用以下方法

    String dateStr = "Mon Jan 12 00:00:00 IST 2015";

    DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
    System.out.println(formatter.format(dateStr));

但是得到了,

Exception in thread "main" java.lang.IllegalArgumentException: 
Cannot format given Object as a Date

【问题讨论】:

  • 首先你必须将字符串解析为日期,然后你可以格式化它

标签: java date jdk6


【解决方案1】:
String dateStr = "Mon Jan 12 00:00:00 IST 2015";

首先你必须将你的字符串解析为一个日期:

DateFormat parser = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
Date date = parser.parse(dateStr);

然后你就可以格式化了:

DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
System.out.println(formatter.format(date));

【讨论】:

    【解决方案2】:

    您必须将字符串解析为日期,然后格式化该日期

    String dateStr = "Mon Jan 12 00:00:00 IST 2015";
    
    DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
    DateFormat formatter1 = new SimpleDateFormat("dd.MM.yyyy");
    System.out.println(formatter1.format(formatter.parse(dateStr)));
    

    Demo

    【讨论】:

    • 如果日期是 IST 2015 年 1 月 32 日星期一 00:00:00,它将转换为下个月的日期(在本例中为 01.02.2015),我该如何防止这种情况发生。
    • 使用setLenient(false) 验证日期,查看docs 了解更多信息。
    猜你喜欢
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    相关资源
    最近更新 更多