我正在尝试将格式yyyy-mm-dd
的字符串转换为dd-MMM-yy
。我正在得到正确的年和日,但是对于一个月,它只显示jan而不管我的输入。如何解决?
String input = "2013-09-14";
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-mm-dd");
SimpleDateFormat format2 = new SimpleDateFormat("dd-MMM-yy");
Date date = null;
try {
date = format1.parse(input);
String temp = format2.format(date);
System.out.println(temp);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
输出:
14-Jan-13
但我应该得到:
14-Oct-13
答案 0 :(得分:1)
mm 是几分钟。 MM 持续数月。
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
答案 1 :(得分:1)
答案 2 :(得分:1)
我会建议最新的API LocalDate
,不需要try/catch
,而且更容易使用:
String input = "2013-09-14";
LocalDate inputDate = LocalDate.parse(input, DateTimeFormatter.ISO_DATE);
String format = inputDate.format(DateTimeFormatter.ofPattern("dd-MMM-yy"));
System.out.println(format);
DateTimeFormatter.ISO_DATE
是DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate inputDate = LocalDate.parse(input);
也可以,因为ISO_DATE
默认format
答案 3 :(得分:0)
模式区分大小写:
MM是月,mm是分钟:
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
有关更多信息,请阅读SimpleDateFormat
的javadoc答案 4 :(得分:-3)
我亲自使用一种模式来做到这一点,
LocalTime w = LocalTime.MIDNIGHT.plus(d);
s = DateTimeFormatter.ofPattern("HH:mm:ss").format(w);
我建议你改用java 8日期类型