我需要将这个字符串解析为日期:
2013年欧洲中部时间6月10日星期一00:00:00
我是这么做的:
SimpleDateFormat sdf = new SimpleDateFormat("ccc MMM dd HH:mm:ss z yyyy");
Date date = sdf.parse(dateString);
但是我得到了一个ParseException
:
Unparseable date: "Wed Oct 02 00:00:00 CEST 2013" (at offset 0)
有没有人帮忙?
6条答案
按热度按时间wlzqhblo1#
正如其他人所说,您需要
EEE
而不是ccc
--但是您还应该指定一个语言环境,这样它就不会试图使用您的系统默认语言环境来解析月份和日期名称(以及其他内容):hjzp0vay2#
您的格式错误。您需要使用
EEE
而不是ccc
,其中E
表示Day name in week
。查看docs,了解
SimpleDateFormat
可用的所有有效模式。nfg76nw03#
在模式中将
ccc
替换为EEE
以指定星期几:示例:https://gist.github.com/kmb385/8781482
k5hmc34c4#
更新格式如下:
drkbr07n5#
这是一个
Locale
问题,因为Locale
之间的日期表示方式不同,所以如果Date
的格式不正确,JVM就会触发异常。IDEone示例可以正常工作,因为默认语言环境为
Locale.US
q1qsirdb6#
Java.时间
accepted answer使用
SimpleDateFormat
,这在2014年2月是正确的做法。2014年3月,java.util
日期-时间API及其格式化APISimpleDateFormat
被modern Date-Time API取代。从那时起,强烈建议停止使用传统日期-时间API。Locale
。如果出于某种原因,您需要
java.util.Date
的示例,可以按如下方式获取:ONLINE DEMO
从**Trail: Date Time**了解有关现代日期-时间API的更多信息。