我有一个格式为MMDDYYYY(例如01062014)的字符串,我希望将其转换为类似2014年1月6日的内容。我目前的代码不起作用并返回默认月份(某事已经消失了)错了)然后10,6204。
String[] datesRaw = args[3].split("");
String[] dates = { datesRaw[0] + datesRaw[1], datesRaw[2] + datesRaw[3], datesRaw[4] + datesRaw[5] + datesRaw[6] + datesRaw[7] };
int[] numbers = new int[dates.length];
for (int i = 0; i < dates.length; i++) {
numbers[i] = Integer.parseInt(dates[i]);
}
String month = "Something whent wrong";
switch (numbers[0]) {
case 1:
month = "January";
break;
case 2:
month = "February";
break;
case 3:
month = "March";
break;
case 4:
month = "April";
break;
case 5:
month = "May";
break;
case 6:
month = "June";
break;
case 7:
month = "July";
break;
case 8:
month = "August";
break;
case 9:
month = "September";
break;
case 10:
month = "October";
break;
case 11:
month = "November";
break;
case 12:
month = "December";
break;
}
fileName = month + " " + dates[1] + ", " + dates[2];
答案 0 :(得分:2)
使用两个SimpleDateFormat
个对象 - 一个用于将初始String
解析为Date
,另一个用于将生成的Date
格式化为String
。
public String convert(String inputString) {
SimpleDateFormat inputFormat = new SimpleDateFormat("MMddyyyy");
SimpleDateFormat outputFormat = new SimpleDateFormat("MMMM d, yyyy");
Date theDate = inputFormat.parse(inputString);
return outputFormat.format(theDate);
}
您可能希望在具有此方法的类中创建这两个SimpleDateFormat
对象作为常量,但请注意,这种方法会使此方法不是线程安全的。
答案 1 :(得分:0)
你采用的方式不是正确的方法。将数字字符串转换为Date对象然后使用打印格式打印它会更好。
This回答可以帮到你
答案 2 :(得分:0)
String date = "01062014";
DateFormat ft = new SimpleDateFormat("MMddyyyy");
DateFormat ft1 = new SimpleDateFormat("MMMM dd, yyyy");
System.out.println(ft1.format((Date)ft.parse(date)));