我是
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";
它不起作用.帮助我,如何解决这个问题.
解决方法
您的格式必须与您的输入相符
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 java-8
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