如何将两种不同类型的字符串格式解析为日期?
这样的日期
我正在尝试格式化像2011 年 8 月和 2011 年 8 月 24 日
,我现在使用它来解析它们。
//set the pattern here to look like the pattern you are expecting in your 'Date' variable
SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd,yyyy");
//Get the release date
releaseDate = postIt.next().text();
Date realDate = null;
try {
realDate = sdf.parse(releaseDate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i = 0;
String gameDate = realDate.toString();
我在调试中收到以下错误。
08-26 22:02:44.571: WARN/System.err(29218): java.text.ParseException: Unparseable date: "August 2011" (at offset 11)
08-26 22:02:44.571: WARN/System.err(29218): at java.text.DateFormat.parse(DateFormat.java:626)
我将如何使其能够读取两种格式?
编辑:
这就是它现在解析它的方式...
08-27 00:10:48.951: VERBOSE/Dates(30449): August 2011
如果格式化 2011 年 8 月 他们
08-27 00:10:48.951: ERROR/FormattedDATE(30449): Mon Aug 01 00:00:00 EDT 2011
都解析到同一日期。
I am trying to format a date like these
august 2011, and august 24,2011
I am using this to parse them now..
//set the pattern here to look like the pattern you are expecting in your 'Date' variable
SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd,yyyy");
//Get the release date
releaseDate = postIt.next().text();
Date realDate = null;
try {
realDate = sdf.parse(releaseDate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int i = 0;
String gameDate = realDate.toString();
i get the following error in my debug.
08-26 22:02:44.571: WARN/System.err(29218): java.text.ParseException: Unparseable date: "August 2011" (at offset 11)
08-26 22:02:44.571: WARN/System.err(29218): at java.text.DateFormat.parse(DateFormat.java:626)
How would i go about making this to where it will read both formats?
EDIT:
This is how it parses it now...
08-27 00:10:48.951: VERBOSE/Dates(30449): August 2011
If formated the August 2011
to
08-27 00:10:48.951: ERROR/FormattedDATE(30449): Mon Aug 01 00:00:00 EDT 2011
They all parse to this same date.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您需要每个格式字符串,例如
我建议您查看 http://joda-time.sourceforge .net
这只是一个想法,不确定我是否真的会使用它,但可以使用标记器来查看它是什么日期类型,2 个标记表示“2005 年 8 月 11 日”,1 个标记表示“8 月” 2005'。因此,如果令牌计数为 1,则使用一种格式化程序;如果令牌计数为 2,则使用其他格式化程序,例如
I think you'll need a format string for each e.g.
I would recommend you check out http://joda-time.sourceforge.net
This is just an idea, not sure if I'd really use it but a tokenizer could be used to see what date type it is, 2 tokens for 'August 11, 2005', 1 for 'August 2005'. So use one formatter if token count is 1, other formatter if token count is 2 e.g.