DateFormat使用dateStyle和timeStyle解析String

时间:2015-10-14 05:34:06

标签: java

此代码在控制台上写

  

错误:无法解析字符串中的日期" 2003年11月4日晚上8:14"。

我不明白为什么。

        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 + "\"");
    }

3 个答案:

答案 0 :(得分:0)

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

您也必须传递区域设置对象。尝试使用getDateTimeInstance(int dateStyle,int timeStyle,Locale aLocale)方法。

答案 1 :(得分:0)

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

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 + "\"");
    }
}

}

答案 2 :(得分:0)

由于导入了错误的软件包,导致出现错误。 尝试导入以下包。它对我有用。

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