java实现将“yyyy-MM-dd”格式字符串转化成“yyyy年M月d日”格式
公共方法可直接套用:
public static String getChinaDateFromString(String str) {
try {
if(str==null ){
return getChinaCurrentDate();
}
str = str.trim();
int year = 0;
int month = 0;
int day = 0;
// System.out.println("==="+str);
if(str==null || str.equals("null") || str.equals("")){
return getChinaCurrentDate();
}
else if (str.indexOf("年") > 0||str.indexOf("月") > 0||str.indexOf("日") > 0) {
return str;
}
else {
if (str.length() == 10 && (str.indexOf("-") > 0)) { // by meconsea add str.indexOf("-") > 0
year = Integer.parseInt(str.substring(0, 4));
month = Integer.parseInt(str.substring(5, 7));
day = Integer.parseInt(str.substring(8, 10));
}
else if (str.length() == 8) {
year = Integer.parseInt(str.substring(0, 4));
month = Integer.parseInt(str.substring(4, 6));
day = Integer.parseInt(str.substring(6, 8));
}
else if (str.length() == 6) {
year = Integer.parseInt(str.substring(0, 4));
month = Integer.parseInt(str.substring(4, 6));
}
if (day == 0)
str = year + "年" + month + "月";
else
str = year + "年" + month + "月" + day + "日";
}
}
catch (Exception e) {
e.printStackTrace();
}
return str;
}
public static String getChinaCurrentDate() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String str_date = dateFormat.format(Calendar.getInstance().getTime());
str_date = str_date.substring(0, 4) + "年" + str_date.substring(4, 6) + "月" +
str_date.substring(6, 8) + "日 ";
return str_date;
}
public static void main(String[] args) {
System.out.println(getChinaDateFromString("2017-01-01"));
}
测试运行结果:2017年1月1日
本文原创,转载必追究版权。