建议不要使用类型 Date 的方法 getYear()?如何解决?

s_phoenix 2004-06-30 09:43:22
以下两个函数会在编译时提示建议不要使用类型 Date 的方法 getYear(),应该如何解决了?用什么方法?哪位大侠出手改写一下,100分奉上!多谢!

/*时间加分钟
* @author XX
* @param strDate 时间
* @param minutes 分钟数
* @return 相加后的时间
*/
public static String DateAdd(String strDate,int minutes){
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
ParsePosition pos = new ParsePosition(0);
Date dt=formatter.parse(strDate,pos);
long ltmp=dt.getTime();
ltmp+=minutes*60*1000;
dt.setTime(ltmp);

String year,month,date,hour,minute;
year=String.valueOf(1900+dt.getYear());
month=String.valueOf(1+dt.getMonth());
if(month.length()==1)
month="0"+month;
date=String.valueOf(dt.getDate());
if(date.length()==1)
date="0"+date;
hour=String.valueOf(dt.getHours());
if(hour.length()==1)
hour="0"+hour;
minute=String.valueOf(dt.getMinutes());
if(minute.length()==1)
minute="0"+minute;

return year+"-"+month+"-"+date+" "+hour+":"+minute;
}
/*时间减分钟
* @author XX
* @param strDate 时间
* @param minutes 分钟数
* @return 相减后的时间
*/
public static String DateDiff(String strDate,int minutes){
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
ParsePosition pos = new ParsePosition(0);
Date dt=formatter.parse(strDate,pos);
long ltmp=dt.getTime();
ltmp-=minutes*60*1000;
dt.setTime(ltmp);

String year,month,date,hour,minute;
year=String.valueOf(1900+dt.getYear());
month=String.valueOf(1+dt.getMonth());
if(month.length()==1)
month="0"+month;
date=String.valueOf(dt.getDate());
if(date.length()==1)
date="0"+date;
hour=String.valueOf(dt.getHours());
if(hour.length()==1)
hour="0"+hour;
minute=String.valueOf(dt.getMinutes());
if(minute.length()==1)
minute="0"+minute;

return year+"-"+month+"-"+date+" "+hour+":"+minute;
}
...全文
409 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sun0591 2004-08-21
up
回复
s_phoenix 2004-06-30
嗯,给改成这样了,多谢各位:
/*时间加分钟
* @author 杨瑞
* @param strDate 时间
* @param minutes 分钟数
* @return 相加后的时间
*/
public static String DateAdd(String strDate,int minutes){
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
ParsePosition pos = new ParsePosition(0);
Date dt=formatter.parse(strDate,pos);
long ltmp=dt.getTime();
ltmp+=minutes*60*1000;
//修改开始 byXX 2004-6-30 11:59:00
Calendar MyCalendar=Calendar.getInstance();
MyCalendar.setTimeInMillis(ltmp);
//dt.setTime(ltmp);

String year,month,date,hour,minute;
year=String.valueOf(1900+MyCalendar.get(Calendar.YEAR));
month=String.valueOf(1+MyCalendar.get(Calendar.MONTH));
if(month.length()==1)
month="0"+month;
date=String.valueOf(MyCalendar.get(Calendar.DATE));
if(date.length()==1)
date="0"+date;
hour=String.valueOf(MyCalendar.get(Calendar.HOUR));
if(hour.length()==1)
hour="0"+hour;
minute=String.valueOf(MyCalendar.get(Calendar.MINUTE));
if(minute.length()==1)
minute="0"+minute;
//修改结束 byXX 2004-6-30 11:59:21
return year+"-"+month+"-"+date+" "+hour+":"+minute;
}
/*时间减分钟
* @author 杨瑞
* @param strDate 时间
* @param minutes 分钟数
* @return 相减后的时间
*/
public static String DateDiff(String strDate,int minutes){
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm");
ParsePosition pos = new ParsePosition(0);
Date dt=formatter.parse(strDate,pos);
long ltmp=dt.getTime();
ltmp-=minutes*60*1000;
//修改开始 byXX 2004-6-30 11:59:27
Calendar MyCalendar=Calendar.getInstance();
MyCalendar.setTimeInMillis(ltmp);
//dt.setTime(ltmp);

String year,month,date,hour,minute;
year=String.valueOf(1900+MyCalendar.get(Calendar.YEAR));
month=String.valueOf(1+MyCalendar.get(Calendar.MONTH));
if(month.length()==1)
month="0"+month;
date=String.valueOf(MyCalendar.get(Calendar.DATE));
if(date.length()==1)
date="0"+date;
hour=String.valueOf(MyCalendar.get(Calendar.HOUR));
if(hour.length()==1)
hour="0"+hour;
minute=String.valueOf(MyCalendar.get(Calendar.MINUTE));
if(minute.length()==1)
minute="0"+minute;
//修改结束 byXX 2004-6-30 11:59:32
return year+"-"+month+"-"+date+" "+hour+":"+minute;
}
回复
rosen 2004-06-30
Calendar now=Calendar.getInstance(); //日历对象
Date time=new Date(); //得到当前日期
now.setTime(time); //设置进去
System.out.println(now.get(Calendar.YEAR)); //返回日历对象的年
回复
skyboy0720 2004-06-30
Calendar比较好用,我喜欢!
回复
blasterboy 2004-06-30
Calendar
回复
maowu 2004-06-30
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int year = cal.get(Calendar.YEAR);
回复
liuliliujian 2004-06-30
其中formatter.format(dt)就是将日期对象按照formatter的日期格式转换成字符串,我试过了,一切ok:) msn:liuliliujian@hotmail.com有机会切磋,我也是初学
回复
liuliliujian 2004-06-30
你可以不需要用到getYear()方法啊,你的本意不就是将加了minutes之后的日期对象以你固定的格式返回到函数吗,可以这样做呀:你的日期格式既然已经定义了(formatter),那么你可以直接返回formatter.format(dt)即可
回复
httruly 2004-06-30
看一下Calendar
回复
相关推荐
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2004-06-30 09:43
社区公告
暂无公告