如何将给定格式的java.util.Date转换为字符串实例?
如何将给定格式的java.util.Date转换为字符串实例?,java,date,Java,Date,我是Java新手,正在尝试将字符串日期转换为特定的Java.util.date格式。未解析的字符串日期是yyyy-MM-dd-HH:MM:ss模式,我想将其更改为dd-MM-yyyy,为此我编写了一些第一个实现,如下所示: import java.text.SimpleDateFormat; public class testDate { public void parseDate() { try { String testDate = "20
我是Java新手,正在尝试将
字符串
日期转换为特定的Java.util.date
格式。未解析的字符串日期是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();
}
}
输出12月5日星期二00:00:00 IST 24
对于我这个新手来说是出乎意料的:)
因此,我想提出建议或指出我的错误所在。谢谢
注意:-有一篇类似的帖子(),但它讨论了将一个日期
格式解析为另一个格式,而不是将字符串
解析为另一个日期
格式您混淆了解析和呈现日期。当然,您需要使用日期的格式来解析日期,然后您可以使用不同的格式来呈现日期
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));
字符串的格式似乎与SimpleDataFormat的格式不同
试一试
您没有正确解析输入日期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));
}
SimpleDataFormat应该具有正确的模式来解析给定的字符串。如果你像这样构造format1
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
“parse”调用将在给定日期正常工作。之后,您可以根据自己的需要对其进行格式化:
public void parseDate() {
try {
String testDate = "2015-06-19 00:00:00.000000";
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date parsedDate = format1.parse(testDate);
//change the pattern
format1.applyPattern("dd-MM-yyyy");
System.err.println(format1.format(parsedDate));
}
catch (Exception e) {
e.printStackTrace();
}
}
解析字符串时,需要一个表示原始日期的日期对象。因此,您需要使用它附带的格式来解析它。然后,您需要另一个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();
}
}
可能重复感谢@JFPicard,但是那里的答案是从Date
转换和解析到Date
而不是String
到Date
感谢您提供的信息,这些信息有效,接受了您的amswer。由于我的名声,我不能高估任何人的职位。但我知道,我一定会这么做的。谢谢
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();
}
}