我是Java的新手,正在尝试将String
日期转换为某种java.util.Date
格式。 un-parsed
字符串日期为yyyy-MM-dd HH:mm:ss
模式,我想将其更改为dd-MM-yyyy
,因为我写了一些第一个实现,如下所示:
import java.text.SimpleDateFormat;
public class testDate {
public void parseDate() {
try {
String testDate = "2015-06-19 00:00:00.000000";
SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy");
java.util.Date parsedDate = format1.parse(testDate);
System.err.println(parsedDate);
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
testDate td = new testDate();
td.parseDate();
}
}
作为新手,输出 Tue Dec 05 00:00:00 IST 24
对我来说意外:)。
所以,我会要求建议或指出我哪里出错了。感谢
注意: - 有一个类似的帖子(Convert java.util.Date to String),但它讨论的是将一种Date
格式解析为另一种格式,而不是String
解析为另一种Date
格式< / p>
答案 0 :(得分:3)
您对解析和呈现日期感到困惑。您需要使用它所使用的格式来解析日期,当然,您可以使用其他格式进行渲染。
String testDate = "2015-06-19 00:00:00.000000";
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date parsedDate = format1.parse(testDate);
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
System.err.println(format2.format(parsedDate));
答案 1 :(得分:3)
SimpleDateFormat应该有正确的模式来解析给定的字符串。如果你像这样构造format1
<div>
<pre>
@Model.Exception.InnerException
</pre>
</div>
<div>
<pre>
@Model.Exception.Message
</pre>
</div>
“解析”调用将在给定日期正常工作。之后,您可以根据自己的需要对其进行格式化:
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
答案 2 :(得分:1)
您的String似乎与SimpleDateFormat的格式不同。
试
String testDate = "19-06-2015";
SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy");
Date date;
try {
date = format1.parse(testDate);
System.out.println(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 3 :(得分:1)
您没有正确解析输入日期。 format1
应该是传入日期的格式,而不是您希望日期的格式。
try {
String testDate = "2015-06-19 00:00:00.000000";
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date parsedDate = format1.parse(testDate);
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
System.err.println(format2.format(parsedDate));
}
答案 4 :(得分:1)
解析字符串时,您需要一个表示原始日期的Date对象。因此,您需要使用它附带的格式解析它。然后,您需要另一个具有输出目标格式的SimpleFormat。
所以,试试这个:
import java.text.SimpleDateFormat;
public class testDate {
public void parseDate() {
try {
String testDate = "2015-06-19 00:00:00.000000";
// not sure about the Millisecond part ... might be SSSSSS
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
java.util.Date parsedDate = format1.parse(testDate);
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
String ouput = format2.format(parsedDate)
System.err.println(parsedDate);
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
testDate td = new testDate();
td.parseDate();
}
}