2012-01-24 134 views
6

我需要解析原本不具有年制定类似 一个字符串“08月13日11:30”默认日期年份为1970年,在

但是当我输出日期它添加上, 我一年试图设置一年,但今年是完全错误的输出当属“周四08月13日11:30:00 GMT 3911”

有没有办法设置年份的日期进行解析后?

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM HH:mm"); 

String dateStr = "13 Aug 11:30"; 
Date fromDate = (Date)formatter.parse(dateStr); 


fromDate.setYear(2011); 
+0

标题是不是描述似乎这个问题吗? –

+0

为什么不是当年字符串添加您解析它之前? –

+0

@马丁因为我从html标记解析日期和它没有一年 –

回答

11

使用Calendar设置年份:

Calendar c = Calendar.getInstance(); 
c.setTime(fromDate); 
c.set(Calendar.YEAR, 2011); 
fromDate = c.getTime(); 
+1

使用未设置年份的弃用方式+1。 – Dev

3

您是否阅读过setYear方法的API?

设置此Date对象的年为指定数值加1900

2011 + 1900 = 3911

3

java.util.Date状态十分清楚地表明setYear()的文档增加了1900过去的一年你只需从你的论点中减去1900。

+0

谨防闰年:1900年不是闰年,但2000年。我同意你对有关将字符串添加到字符串的评论;这对我来说似乎最简单。 – MRAB