Java中的字符串到日期

时间:2010-08-05 04:17:31

标签: java date

HI,

我正在将String转换为Date格式。但它返回错误的日期。例如,

String startDate = "08-05-2010"; //  (MM/dd/yyyy)

我想将此转换为像这样的“Date”对象,05-JUL-10

怎么做?我试过这个

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy");
scal1.setTime(dateFormat.parse((startDate)));

但是我得到了“Unparseable date:”。

4 个答案:

答案 0 :(得分:4)

如果要将一种格式的日期字符串转换为另一种格式,可以使用SimpleDateFormat

的format()和parse()方法

首先,您需要使用parse()方法将字符串解析为日期对象,然后使用设置目标模式的format()方法格式化日期对象:

SimpleDateFormat sourceFormat = new SimpleDateFormat("MM-dd-yyyy");
Date sourceFormatDate = sourceFormat.parse("08-05-2010");
SimpleDateFormat destFormat = new SimpleDateFormat("dd-MMM-yy");
String destFormatDateString = destFormat.format(sourceFormatDate);
System.out.println(destFormatDateString); // 05-Aug-10

答案 1 :(得分:2)

除非你遗漏了一些东西,否则看起来你正试图用错误的格式解析它,即你有一个mm-dd-yyyy,你试图用格式dd-MMM解析它-yy。尝试使用单独的日期格式来解析您正在编码的内容。

答案 2 :(得分:1)

SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”);
String strDate = “2007-12-25″;
Date date = null;
try {

   date = format.parse(strDate);

} catch (ParseException ex) {

   ex.printStackTrace();

}

答案 3 :(得分:0)

用于解析字符串的格式dd-MMM-yy是错误的;格式应为dd-MM-yyyy

String startDate = "08-05-2010";
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = dateFormat.parse((startDate));

请注意,Date个对象本身没有格式:Date个对象只表示日期和时间值,就像int只是一个数字,而不是有任何固有的格式信息。如果您想以特定格式显示Date,则必须再次使用DateFormat对象进行格式化:

DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yy");
System.out.println(dateFormat.format(date));
// output: 08-May-10