建议不要使用类型 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;
}
...全文
762 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧