从MMDDYYYY转换为日期java

时间:2014-01-07 01:02:53

标签: java

我有一个格式为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];

3 个答案:

答案 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)));