Java 到目前为止的字符串给出了错误的结果

Java 到目前为止的字符串给出了错误的结果,java,string,date,Java,String,Date,我有: 我在这里做错了什么,因为每次我尝试解析我都会得到一个例外。你的日期fromat是错误的。改为: String t = "Sep 17, 2015 00:00:00" DateFormat format = new SimpleDateFormat("dd.MM.yyyy"); Date date = format.parse(t); 有关更多信息,请参阅的javadoc 正如我正确理解您的评论一样,您需要格式为dd.MM.yyy的字符串 因此,您必须创建第二个DateFromat来格式

我有:


我在这里做错了什么,因为每次我尝试解析我都会得到一个例外。

你的日期fromat是错误的。改为:

String t = "Sep 17, 2015 00:00:00"
DateFormat format = new SimpleDateFormat("dd.MM.yyyy");
Date date = format.parse(t);
有关更多信息,请参阅的javadoc

正如我正确理解您的评论一样,您需要格式为dd.MM.yyy的字符串

因此,您必须创建第二个DateFromat来格式化字符串

String t = "Sep 17, 2015 00:00:00"
DateFormat format = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss");
Date date = format.parse(t);

日期和日期格式不匹配。您可以更改日期以匹配您的格式(反之亦然)

当您使用“dd.MM.yyyy”作为日期格式时,您的输入应为2015年9月17日,而不是“2015年9月17日00:00:00” 所以你有两个选择:要么

 String t = "17.09.2015"
 DateFormat format = new SimpleDateFormat("dd.MM.yyyy");
 Date date = format.parse(t);


您的格式错误2015年9月17日00:00:00与
dd.MM.yyyy
之间有什么关系?@MadProgrammer dd.MM.yyyy是我以后想要的。我不需要所有的零。这是否意味着你会接受我的答案(尽管存在争论),看起来它是正确的?@HHH好的,但首先你需要将
字符串
值转换为
日期
值,一旦你有了
日期
值,你就可以随意格式化at
Date
没有格式的概念,它是自Unix纪元以来毫秒数的容器,因此您无法使用预定义格式创建
Date
,如果无法更改日期(因为日期来自文件、表单或其他版本),您将如何解决此问题?在这种情况下,需要更改格式:“mm dd,yyyy HH:mm:ss”@Jordi Castilla编辑了我的answer@JordiCastilla感谢BuddyIt在他的要求中没有这样说,因此在没有明确指示的情况下,可以是[您可以更改日期以匹配您的格式(或反之亦然)]。真的吗?JOHN?我想(附我的评论)为了鼓励您改进答案以获得一些向上投票(首先是我的),现在,您有了我的向下投票……嗨,Jordi,您能指出显示他无法控制日期输入字符串格式的部分吗?我可以肯定地看到不匹配,但没有任何迹象表明这不是(例如)一个学校作业,他可以控制他正在处理的字符串的格式。这是不幸的Jordi,我认为有点情绪化。@Rehman的答案格式颠倒了。两个相同的答案有什么意义?代码简单地说明了如何更改日期以匹配他所处理的格式。希望我们能同意不同意?我佩服你对软件开发的热情,尽管我对这个问题有不同的看法(我相信在未来我们可以找到一些共同点)!@Jens谢谢你的回答。我之所以使用错误的格式是因为我希望它成为我的结果。因此,尽管我有其他东西,但我稍后会在我的字符串中输入,我只需要它。我是如何写我的问题的。你知道怎么做吗?@hhh我找不到你。你的意思是你将在dd.MM.yyyy中将日期重新格式化为字符串?
 String t = "17.09.2015"
 DateFormat format = new SimpleDateFormat("dd.MM.yyyy");
 Date date = format.parse(t);
String t = "Sep 17, 2015 00:00:00";
        DateFormat format = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss");
        try {
            Date date = format.parse(t);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
String t = "17.09.2015";
        DateFormat format = new SimpleDateFormat("dd.mm.yyyy");
        try {
            Date date = format.parse(t);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }