我想将2012-05-04 00:00:00.0
格式化为04-MAY-2012
。我已尝试过以下步骤。
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd 'T' HH:mm:ss.SSS");
Date date;
String dateformat = "";
try {
date = sdf.parse("2012-05-04 00:00:00.0");
sdf.applyPattern("DD-MON-RR");
dateformat = sdf.format(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但我得到了以下异常。
java.text.ParseException: Unparseable date: "2012-05-04 00:00:00.0"
at java.text.DateFormat.parse(DateFormat.java:337)
at com.am.test.Commit.main(Example.java:33)`
我怎么能这样做?
答案 0 :(得分:16)
这里有效:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class temp2 {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date;
String dateformat = "";
try {
date = sdf.parse("2012-05-04 00:00:00.0");
sdf.applyPattern("dd-MMM-yyyy");
dateformat = sdf.format(date);
System.err.println(dateformat);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 1 :(得分:1)
我认为如果删除'T'
,它就会有用。
答案 2 :(得分:1)
使用此模式:
sdf.applyPattern("DD-MMM-YYYY");
不要使用它:
sdf.applyPattern("DD-MON-RR");
答案 3 :(得分:1)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
Date date;
String dateformat = "";
try {
date = sdf.parse("2012-05-04 00:00:00.0");
sdf.applyPattern("dd-MMM-yyyy");
dateformat = sdf.format(date);
System.out.println(dateformat);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 4 :(得分:1)
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date oldFormatedDate = null;
try {
oldFormatedDate = sdf.parse("2012-05-04 00:00:00.0");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(new SimpleDateFormat("dd-MMM-yyyy").
format(oldFormatedDate));
}