Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 格式日期从年月日到年月日_Java_Date_Format - Fatal编程技术网

Java 格式日期从年月日到年月日

Java 格式日期从年月日到年月日,java,date,format,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";

例如,它将格式化日期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('/'));

}

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

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

第一,您使用的是
日期出发
而不是
月份

switch(dateDeparture)
您的案例语句使用的是
int
而不是
String

case 1:
相反,你需要使用更像

switch (month) {
    case "1":
    case "01":
        month = "January";
        break;
}
现在,因为您的月份“可能”是零索引的,所以您需要考虑这两种情况

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

int monthValue = Integer.parseInt(month);
switch (monthValue) {
    case 1:
        //...
一种更简单的方法是使用您可以使用的内置API

首先将
字符串
值转换为
日期

SimpleDateFormat in = new SimpleDateFormat("MM/dd/yyyy");
Date date = in.parse(dateDeparture);
然后格式化日期

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

请仔细查看以了解更多详细信息…

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

这样做

//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语句,并根据您的喜好设置日期和年份的格式。

最好使用日期格式类,如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);

你能使用
DateFormat
SimpleDateFormat
吗?或者你必须手工操作吗?我可以使用任何东西,但我不知道如何使用这些格式化程序。不要考虑不使用
SimpleDateFormat