Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何替换不推荐使用的方法Date.setHours(int)?_Java_Date_Deprecated - Fatal编程技术网

Java 如何替换不推荐使用的方法Date.setHours(int)?

Java 如何替换不推荐使用的方法Date.setHours(int)?,java,date,deprecated,Java,Date,Deprecated,我的Java代码中有一些不推荐的Date方法,如果有人能在这里指导我,我将不胜感激。我有一个私有日期变量: private Date startime; private Date endTime; 在我的方法中,我声明: Calendar calender = Calendar.getInstance(); this.startTime = calender.getTime(); this.startTime.setHours(0); // ----> is depreacted th

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

private Date startime;
private Date endTime;
在我的方法中,我声明:

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

this.endTime.setHours(startTime.getHours()); // -->deprecated line as well
其他方法,如
setMinutes()
getMinutes()
也不推荐使用

我知道我必须使用
Calendar.set(Calendar.HOUR OF_DAY,HOUR)
。如何在这里使用新代码?所有的设定时间、getMinutes等都排满了

        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;
    }

不推荐使用日期的方法setHours

您可以在此处查看文档:

如果查看“设置小时数”方法,您将看到:


“从JDK 1.1版开始,由Calendar.set(Calendar.HOUR of_DAY,int hours)替换。”

您可以使用Apache Commons Lang3 DateUtils

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

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

this.endTime = calendar.getTime();
如果没有,你能告诉我们你想要替换日期代码的完整方法吗

编辑:这是完整方法的更新版本。基本上,它的工作原理是,一旦获得日历对象的实例,它就会保持其状态。由于您不打算更改工时,因此只需设置一次。由于您正在更新查询中的分钟数,因此必须在调用calendar.getTime()之前重新设置


实际上,
java.time
包中有一组新的日期类,与
java.util
中的时间类相比有了很大的改进。如果可以,请使用它。如果您使用的是Java1.8,则有改进的DateTime API。本教程展示了一些有用的提示:感谢您的帮助。我正在寻找更多关于它的编码帮助。如果你编辑你的问题,请多加注意。您最近的编辑将我对您的问题所做的每一个更改都还原了,这会重新引入无效代码和其他问题。这就是我将其回滚的原因。如果您仍然想编辑您的问题,请刷新您的浏览器页面,然后编辑一些内容。好的,谢谢您的时间。我不需要再编辑了。这是OP已经知道的。他喜欢看一个如何使用这些方法的示例。谢谢Tom,我想知道如何在我已经编写的旧代码中使用新代码
Calendar.set(Calendar.HOUR\u OF_DAY,int hours)
。我想知道如何将其集成到我的代码中。例如,
this.startTime.Calendar.set(Calendar.HOUR\u OF_DAY,HOUR)
会给我错误信息。我不确定是否要将其添加到我的代码中。非常感谢@mmaynar1。我在寻找这样的代码建议。我不确定如何使用新方法来处理我的代码。我是一名android/java开发新手。没问题。这是你的全部方法吗?我也许能帮上更多的忙。@androidlive如果这个答案能帮助你解决你的问题,那么别忘了。很好,汤姆。我忘记删除的是不相关的代码。我的答案已经更新以反映这一点。谢谢@mmaynar1和Tom。我已经用代码更新了我的问题。
    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;
    }