有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java格式化日期从年月日到年月日

例如,它将格式化日期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) 个答案

  1. # 1 楼答案

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

    但是,您当前的代码有两个问题

    第一,你使用的是dateDeparture而不是month

    switch(dateDeparture)
    

    您的case语句使用了int而不是String

    case 1:
    

    相反,你需要使用更像

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

    现在,因为您的月份“可能”是零索引的,所以您需要考虑这两种情况

    如果您使用的是Java6或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);
    

    请仔细查看^{}以了解更多详细信息

  2. # 2 楼答案

    最好使用SimpleDataFormat之类的日期格式类:

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

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

  4. # 4 楼答案

    做这个

    //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]);
    

    然后在上使用切换语句,并根据您的喜好设置格式