-1

我正在使用 jdk-1.6。我尝试将字符串“24-10-2012”解析为日期(24-10-2012),但我收到此错误:

java.text.ParseException: Unparseable date: "18-11-2012"
java.text.DateFormat.parse(DateFormat.java:354)

我是这样解析的:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
String currentDate = "24-10-2012";
 Date date = formatter.parse(currentDate);
4

6 回答 6

3
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
String currentDate = "24-10-2012";
System.out.println(formatter.parse(currentDate));

印刷

Wed Oct 24 00:00:00 CEST 2012

您发布的代码无法重现您的问题。

我的假设:您的异常是从一段代码引发的,而不是您指责错误的代码。您可以尝试仔细分析堆栈跟踪以追查真正的罪魁祸首。

于 2012-11-19T09:51:43.747 回答
1

java中的日期不包含任何格式。阅读更多...

于 2012-11-20T03:45:28.837 回答
0

当我跑

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
String currentDate = "24-10-2012";
Date date = formatter.parse(currentDate);
System.out.println(date);
System.out.println(formatter.format(date));

我明白了

Wed Oct 24 00:00:00 BST 2012
24-10-2012

正如我所料。你能弄清楚问题是什么吗?

于 2012-11-19T09:52:12.103 回答
0
import java.util.Date;
import java.text.SimpleDateFormat;

public class SimpleFormatDate
{
  public static void main(String args[]){
  Date todaysDate = new java.util.Date();
  // Formatting date into  yyyy-MM-dd HH:mm:ss e.g 2008-10-10 11:21:10

  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String formattedDate = formatter.format(todaysDate);
  System.out.println("Formatted date is ==>"+formattedDate);

  // Formatting date into  yyyy-MM-dd e.g 2008-10-10 
  formatter = new SimpleDateFormat("yyyy-MM-dd");
  formattedDate = formatter.format(todaysDate);
  System.out.println("Formatted date is ==>"+formattedDate);

  // Formatting date into  MM/dd/yyyy e.g 10/10/2008 
  formatter = new SimpleDateFormat("MM/dd/yyyy");
  formattedDate = formatter.format(todaysDate);
  System.out.println("Formatted date is ==>"+formattedDate);
  }
}

输出

Formatted date is ==>2008-10-10 13:03:54
Formatted date is ==>2008-10-10
Formatted date is ==>10/10/2008
于 2012-11-19T10:58:08.180 回答
0

您可以将其用于“dd-mm-yyyy”格式

    SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); 
    String currentDate = "24-10-2012";
    Date date = formatter.parse(currentDate);
    System.out.println(formatter.format(date));
于 2012-11-19T09:54:19.383 回答
-1

等一下..如果你有一个正确的值,为什么你需要解析它?无论如何,我用这个:

SimpleDateFormat oFormat = new SimpleDateFormat("yyyy-MM-dd");
String sDate = oFormat.format("24-10-2012");

它将出现日期如 2012-10-24。所以如果你想解析为 dd-MM-yyyy,你只需要将格式更改为你想要的。

注意:对不起,如果我的英语不好。:D

于 2012-11-19T09:56:07.337 回答