首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

DateFormat的施用(java.text.ParseException: Unparseable date)(转载)

2012-12-22 
DateFormat的使用(java.text.ParseException: Unparseable date)(转载)java.text.ParseException: Unparse

DateFormat的使用(java.text.ParseException: Unparseable date)(转载)

java.text.ParseException: Unparseable date: "11/10/10"
?at java.text.DateFormat.parse(DateFormat.java:337)

?

?

下面是可以运行的代码。

??????? Date date = new Date();
??????? System.out.println(date.toString());
???????
??????? DateFormat df = new SimpleDateFormat ("yyyy-MM-dd");????
??????? Date d1 = df.parse("2001-01-01");
??????? System.out.println(d1.toString());
???????
??????? DateFormat df2 = DateFormat.getDateInstance(DateFormat.SHORT);
??????? System.out.println(df2.format(new Date()));???????
??????? Date d2 = df2.parse("11/10/10");
??????? System.out.println("DateFormat.SHORT: " + d2.toString());
???????
??????? DateFormat df3 = DateFormat.getDateInstance(DateFormat.MEDIUM);
??????? System.out.println(df3.format(new Date()));???????
??????? Date d3 = df3.parse("Nov 10, 2010");
??????? System.out.println("DateFormat.MEDIUM: " + d3.toString());
???????
??????? DateFormat df4 = DateFormat.getDateInstance(DateFormat.LONG);
??????? System.out.println(df4.format(new Date()));???????
??????? Date d4 = df4.parse("November 10, 2010");
??????? System.out.println("DateFormat.LONG: " + d4.toString());

?

结果如下:

Wed Nov 10 10:15:05 CST 2010
Mon Jan 01 00:00:00 CST 2001
11/10/10
DateFormat.SHORT: Wed Nov 10 00:00:00 CST 2010
Nov 10, 2010
DateFormat.MEDIUM: Wed Nov 10 00:00:00 CST 2010
November 10, 2010
DateFormat.LONG: Wed Nov 10 00:00:00 CST 2010

?

?上面的结果是我在英文系统的电脑里运行的。

要在中文系统的电脑运行,代码要如下:

?

Date date = new Date();
???????? System.out.println(date.toString());
????????
???????? DateFormat df = new SimpleDateFormat ("yyyy-MM-dd");????
???????? Date d1 = df.parse("2001-01-01");
???????? System.out.println(d1.toString());
????????
???????? DateFormat df2 = DateFormat.getDateInstance(DateFormat.SHORT);
???????? System.out.println(df2.format(new Date()));???????
???????? Date d2 = df2.parse("11-10-10");
???????? System.out.println("DateFormat.SHORT: " + d2.toString());
????????
???????? DateFormat df3 = DateFormat.getDateInstance(DateFormat.MEDIUM);
???????? System.out.println(df3.format(new Date()));???????
???????? Date d3 = df3.parse("2010-11-10");
???????? System.out.println("DateFormat.MEDIUM: " + d3.toString());
????????
???????? DateFormat df4 = DateFormat.getDateInstance(DateFormat.LONG);
???????? System.out.println(df4.format(new Date()));???????
???????? Date d4 = df4.parse("2010年11月10日");
???????? System.out.println("DateFormat.LONG: " + d4.toString());

?

结果如下:

Wed Nov 10 20:24:28 CST 2010
Mon Jan 01 00:00:00 CST 2001
10-11-10
DateFormat.SHORT: Mon Oct 10 00:00:00 CST 2011
2010-11-10
DateFormat.MEDIUM: Wed Nov 10 00:00:00 CST 2010
2010年11月10日
DateFormat.LONG: Wed Nov 10 00:00:00 CST 2010

?

可以看到每个DateFormat的构造不同,放入DateFormat.parse(String str)这个函数的字符串不同。

但是DateFormat要放入和他规范的字符串格式,还要他去parse干啥! 脱裤子放屁——多此一举的感觉。

?

http://hongweiwang1984.blog.163.com/blog/static/272677620101010101351567/

?

?

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");这里的格式是
4位年 2位月 2位日 2位时 2位分 2位秒 共14位
但是你传入的字符串 只有12位 转换就出错了201104132200变成20110413220000就对了
输入的字符串要和你想要的格式长度神马的都一样才行
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
??????????????????????? try {
?? Date date = sdf.parse("20110413111100");
?? String s = sdf.format(date);
?? System.out.println(s);
? } catch (ParseException e) {
?? e.printStackTrace();
? }

热点排行