1. 2016/11/24
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 需求2014-01-01之前的月不变,年份改成2017; 2014-01-01之后的月不变,年份改成+3 */ public class CalendarTest { public static void main(String[] args) throws Exception { System.out.println(formatCraftDate("2015-05-04")); //May 2018 System.out.println(formatCraftDate("2011-05-04")); //May 2017 } private static String formatCraftDate(String dateStr) throws Exception{ String resultDateStr = null; String stardardDateStr = "2014-01-01"; DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date stardardDate = dateFormat.parse(stardardDateStr); Date date = dateFormat.parse(dateStr); //传过来的日期 Calendar calendar = Calendar.getInstance(); if (date.before(stardardDate)) { // 2013-01-01 before 2014-01-01 为true, 月份不变,年统统改成2017 calendar.setTime(date); resultDateStr = convertMonth(calendar.get(Calendar.MONTH)) + " 2017"; } else { // 2017-01-01 before 2014-01-01 为false , 月份不变,年份加+3 calendar.setTime(date); calendar.add(Calendar.YEAR, 3); resultDateStr = convertMonth(calendar.get(Calendar.MONTH)) +" " + calendar.get(Calendar.YEAR); } return resultDateStr; } public static String convertMonth(int month) { if (month == 0) return "January"; if (month == 1) return "February"; if (month == 2) return "March"; if (month == 3) return "April"; if (month == 4) return "May"; if (month == 5) return "June"; if (month == 6) return "July"; if (month == 7) return "August"; if (month == 8) return "September"; if (month == 9) return "October"; if (month == 10) return "November"; if (month == 11) return "December"; return null; } }