格式化日期从mm / dd / yyyy到MM DD,YYYY

时间:2014-04-29 02:57:06

标签: java date format

例如,它会将2014年2月15日到2014年2月15日的日期格式化

我已经尝试了一个转换来获得月份并且结果已经解决了,但我无法弄清楚如何完成其​​余的工作。

这是我到目前为止所做的:

private void formatDate()
{
    String month = dateDeparture.substring(0, dateDeparture.indexOf('/'));
    switch(dateDeparture)
    {
    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;
    default:
        month = "December";
        break;  
    }
    dateDeparture = month+" "+dateDeparture.substring(dateDeparture.indexOf('/'),  dateDeparture.lastIndexOf('/'))+ dateDeparture.substring(dateDeparture.lastIndexOf('/'));

}

4 个答案:

答案 0 :(得分:1)

Java有一个名为SimpleDateFormat的类。用它来实现你正在做的事情。

答案 1 :(得分:1)

最好使用类似SimpleDateFormat的日期格式化类:

SimpleDateFormat numericDateFormatter = new SimpleDateFormat("MM/dd/yyyy");
Date date = numericDateFormatter.parse(dateDeparture);
SimpleDateFormat mixedDateFormatter = new SimpleDateFormat("MMMMMMMMM d, yyyy");
String dateNew = mixedDateFormatter.format(date);

答案 2 :(得分:0)

只要您使用的是Java 7,就可以在String语句中使用switch ...

但是,您当前的代码存在两个问题......

一,您使用dateDeparture而非month

switch(dateDeparture)

您的案例陈述使用int代替String

case 1:

相反,你需要使用更像......

的东西
switch (month) {
    case "1":
    case "01":
        month = "January";
        break;
}

现在,因为你的月份"可能"如果是零索引,则需要考虑两种情况......

如果您使用的是Java 6或eailer,则需要将String值转换为int ...

int monthValue = Integer.parseInt(month);
switch (monthValue) {
    case 1:
        //...

更简单的方法是使用可用的内置API ...

首先将String值转换为Date值...

SimpleDateFormat in = new SimpleDateFormat("MM/dd/yyyy");
Date date = in.parse(dateDeparture);

然后格式化日期......

SimpleDateFormat out = new SimpleDateFormat("MMMM dd, yyyy");
String value = out.format(date);

仔细查看SimpleDateFormat了解更多详情......

答案 3 :(得分:0)

这样做......

//splits string based on / delimiter 
String[] MDY = dateDeparture.split("/");
int month = Integer.parseInt(MDY[0]);
int day = Integer.parseInt(MDY[1]);
int year = Integer.parseInt(MDY[2]);

然后在上使用您的switch语句,并根据自己的喜好格式化 day year