默认日期年份设定为1970年

时间:2012-01-24 23:51:29

标签: java

我需要解析一个原本没有设置年份的字符串 “8月13日11:30”

但是当我输出日期时,它会添加年份, 我尝试了设定年份,但年份完全错误输出为“Thu Aug 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);

3 个答案:

答案 0 :(得分:11)

使用Calendar设置年份:

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

答案 1 :(得分:3)

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

  

将此Date对象的年份设置为指定值加上1900

2011 + 1900 = 3911

答案 2 :(得分:3)

java.util.Date的文档清楚地表明setYear()在过去的一年中增加了1900个。只需从你的论证中减去1900。