如何替换已弃用的方法Date.setHours(int)? [英] How do I replace the deprecated method Date.setHours(int)?

查看:2260
本文介绍了如何替换已弃用的方法Date.setHours(int)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Java代码中有一些不推荐使用的 Date 方法,如果有人可以在这里指导我,我将不胜感激。我有一个私人的Date变量:

  private Date startime; 
private Date endTime;

在我的方法中我已经声明:

 日历calender = Calendar.getInstance(); 
this.startTime = calender.getTime();
this.startTime.setHours(0); // ---->被贬低

this.endTime.setHours(startTime.getHours()); // - >已弃用的行以及

其他方法,如 setMinutes () getMinutes()也被弃用。



我知道我有使用 Calendar.set(Calendar.HOUR_OF_DAY,小时)。这里怎么用新的代码?所有setHours,getMinutes等都是过分的。

  if(query.getCount()> 0&& query.moveToFirst()){
日历calender = Calendar.getInstance();
this.startTime = calender.getTime();
this.startTime.setHours(0);
this.startTime.setMinutes(query.getInt(startTimeOfDayMins));

this.daysOfWeek =(query.getString(daysOfWeek))。toLowerCase();

this.endTime = calender.getTime();
this.endTime.setHours(startTime.getHours());
this.endTime.setMinutes(startTime.getMinutes()+ query.getInt(durationMins));

this.context = null;
}


解决方案

如果我正确理解您的问题,这应该工作:

  int hours = 0; 
日历calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,hours);
this.startTime = calendar.getTime();

this.endTime = calendar.getTime();

如果没有,可以向我们展示您要替换日期代码的完整方法吗? p>

编辑:这是您的完整方法的更新版本。基本上它是如何工作的,一旦你获得了一个Calendar对象的实例,它保持其状态。由于您不打算改变时间,只需要设置一次。由于您正在更新查询的分钟数,所以您必须在调用calendar.getTime()之前重新设置分钟。

  if( query.getCount()> 0&&  query.moveToFirst())
{
int hours = 0;
int minutes = query.getInt(startTimeOfDayMins);

日历calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR,hours);
calendar.set(Calendar.MINUTE,minutes);
this.startTime = calendar.getTime();

this.daysOfWeek =(query.getString(daysOfWeek)).toLowerCase();

calendar.set(Calendar.MINUTE,minutes + query.getInt(durationMins));
this.endTime = calendar.getTime();

this.context = null;
}


I have some deprecated Date methods in my Java code and I would appreciate if someone can guide me here please. I have a private Date variable:

private Date startime;
private Date endTime;

and in my method I have declared:

Calendar calender = Calendar.getInstance();
this.startTime = calender.getTime();
this.startTime.setHours(0); // ----> is depreacted

this.endTime.setHours(startTime.getHours()); // -->deprecated line as well

Other methods such as setMinutes() and getMinutes() are also deprecated.

I know that I have to use Calendar.set(Calendar.HOUR_OF_DAY, hour). How can use the new code here? all the setHours, getMinutes, etc are all over-lined.

        if (query.getCount() > 0 && query.moveToFirst()) {
          Calendar calender = Calendar.getInstance();
          this.startTime = calender.getTime();
          this.startTime.setHours(0);
          this.startTime.setMinutes(query.getInt("startTimeOfDayMins"));

          this.daysOfWeek = (query.getString("daysOfWeek")).toLowerCase();

          this.endTime = calender.getTime();
          this.endTime.setHours(startTime.getHours());
          this.endTime.setMinutes(startTime.getMinutes() + query.getInt("durationMins"));

        this.context = null;
    }

解决方案

If I understand your question correctly, this should work:

int hours = 0;
Calendar calendar = Calendar.getInstance();
calendar.set( Calendar.HOUR_OF_DAY, hours );
this.startTime = calendar.getTime();

this.endTime = calendar.getTime();

If not, can you show us the full method where you want to replace the date code?

EDIT: Here is the updated version for your full method. Basically how it works is that once you get an instance of the Calendar object it maintains its state. Since you are not planning on changing the hours it only has to be set once. Since you are updating the minutes from your query you will have to set it again before calling calendar.getTime().

    if (query.getCount() > 0 && query.moveToFirst())
    {
        int hours = 0;
        int minutes = query.getInt( "startTimeOfDayMins" );

        Calendar calendar = Calendar.getInstance();
        calendar.set( Calendar.HOUR, hours );
        calendar.set( Calendar.MINUTE, minutes );
        this.startTime = calendar.getTime();

        this.daysOfWeek = ( query.getString( "daysOfWeek" ) ).toLowerCase();

        calendar.set( Calendar.MINUTE, minutes + query.getInt( "durationMins" ) );
        this.endTime = calendar.getTime();

        this.context = null;
    }

这篇关于如何替换已弃用的方法Date.setHours(int)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆