Java 带有dateStyle和timeStyle的DateFormat分析字符串

Java 带有dateStyle和timeStyle的DateFormat分析字符串,java,Java,这段代码是在控制台上编写的 错误:无法分析字符串“Nov 4,2003 8:14 PM”中的日期 我不明白为什么 String dateString = "Nov 4, 2003 8:14 PM"; // Get the default MEDIUM/SHORT DateFormat DateFormat format = DateFormat.getDateTimeInstance( DateFo

这段代码是在控制台上编写的

错误:无法分析字符串“Nov 4,2003 8:14 PM”中的日期

我不明白为什么

        String dateString = "Nov 4, 2003 8:14 PM";

    // Get the default MEDIUM/SHORT DateFormat
    DateFormat format =
            DateFormat.getDateTimeInstance(
                    DateFormat.MEDIUM, DateFormat.SHORT);

    // Parse the date
    try {
        Date date = format.parse(dateString);
        System.out.println("Original string: " + dateString);
        System.out.println("Parsed date    : " + date);
    }
    catch(ParseException pe) {
        System.out.println("ERROR: could not parse date in string \"" +
                dateString + "\"");
    }

正如文档中所述,getDateTimeInstance(int-dateStyle,int-timeStyle)方法获取日期/时间格式化程序,该格式具有默认语言环境的给定日期和时间格式样式


您还必须传递locale对象。尝试使用getDateTimeInstance(int-dateStyle、int-timeStyle、Locale-aLocale)方法。

最好检查导入库。我纠正你的错误,并给你一个完整的代码

import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;

public class HelloWorld {
    public static void main(String[] args) {
         String dateString = "Nov 4, 2003 8:14 PM";

    // Get the default MEDIUM/SHORT DateFormat
    DateFormat format =
            DateFormat.getDateTimeInstance(
                    DateFormat.MEDIUM, DateFormat.SHORT);

    // Parse the date
    try {
        Date date = format.parse(dateString);
        System.out.println("Original string: " + dateString);
        System.out.println("Parsed date    : " + date);
    }
    catch(ParseException pe) {
        System.out.println("ERROR: could not parse date in string \"" +
                dateString + "\"");
    }
}

}

由于导入了不正确的软件包,因此出现错误。 尝试导入以下包。这对我有用

import java.text.DateFormat;
import java.util.Date;
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;

在我的电脑上,
DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.SHORT).format(new Date())
prints
14/10/2015 4:35 PM
,它在您的电脑上打印什么?还有,
DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT)。format(new Date())
prints
2015年10月14日4:36 PM
,所以我想您必须使用类似于
SimpleDateFormat
,类似于
DateFormat format=newsimpledateformat(“mmmd,yyyy hh:mma”)相反,我认为你为Date或其他类导入了错误的包,因为我在我的系统上得到了输出你导入了什么包我导入了:import java.text.DateFormat;导入java.text.ParseException;导入java.util.Date;