Java:将字符串日期转换为月份名称年份(MMM yyyy)

时间:2016-03-20 12:13:23

标签: java date

我是Java新手。我正在尝试将日期从字符串转换为MMM yyyy格式(2016年3月)。我试过这个

Calendar cal=Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("MMM yyyy");
String month_name = month_date.format(cal.getTime());
System.out.println("Month :: " + month_name);  //Mar 2016

工作正常。但是当我使用

String actualDate = "2016-03-20";

它不起作用。帮助我,如何解决这个问题。

1 个答案:

答案 0 :(得分:12)

您的格式必须与您的输入相符

代表2016-03-20

格式应该是(只使用第二个SimpleDateFormat对象)

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

完整答案

SimpleDateFormat month_date = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String actualDate = "2016-03-20";

Date date = sdf.parse(actualDate);

String month_name = month_date.format(date);
System.out.println("Month :" + month_name);  //Mar 2016

使用java.time

String actualDate = "2016-03-20";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH);
DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("MMM yyyy", Locale.ENGLISH);
LocalDate ld = LocalDate.parse(actualDate, dtf);
String month_name = dtf2.format(ld);
System.out.println(month_name); // Mar 2016