2015-06-29 2 views
4

У меня есть некоторые устаревшие методы Date в моем Java-коде, и я был бы признателен, если кто-то может мне помочь здесь, пожалуйста. У меня есть собственная переменная Дата:Как заменить устаревший метод Date.setHours (int)?

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). Как здесь можно использовать новый код? все setHours, 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; 
    } 
+3

В пакете 'java.time' есть новый набор классов дат, которые являются большим улучшением от классов времени в' java.util'. Если можно, используйте это. – Simon

+3

Если вы используете Java 1.8, улучшен API DateTime. В этом руководстве приведены полезные советы: http://javarevisited.blogspot.com/2015/03/20-examples-of-date-and-time-api-from-Java8.html – RichardK

+0

Благодарим за помощь. Я смотрю больше на помощь в кодировании. – androidlive

ответ

4

Если я правильно понимаю ваш вопрос, это должно работать:

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

this.endTime = calendar.getTime(); 

Если нет, то вы можете показать нам полный метод, где вы хотите, чтобы заменить Код даты?

EDIT: Вот обновленная версия для вашего полного метода. В основном, как это работает, когда вы получаете экземпляр объекта Calendar, он сохраняет свое состояние. Поскольку вы не планируете менять часы, их нужно установить только один раз. Поскольку вы обновляете минуты из своего запроса, вам нужно будет установить его снова, прежде чем вызывать 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; 
    } 
+0

Большое спасибо @ mmaynar1. Я искал такое кодовое предложение. Я не был уверен, как использовать новые методы для работы с моим кодом.Я разработчик Android android/java. – androidlive

+0

Нет проблем. Это ваш полный метод? Я мог бы помочь больше. – mmaynar1

+0

@androidlive Если этот ответ помог вам решить ваш вопрос/проблему, то не забудьте [принять его] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer- Работа). – Tom

1

Метод setHours for Date устарел.

Вы можете проверить документацию здесь: http://docs.oracle.com/javase/7/docs/api/java/util/Date.html

Если посмотреть на метод набора часов вы увидите:

«По состоянию на JDK версии 1.1, заменен Calendar.set (Calendar.HOUR_OF_DAY, int hours). "

+0

Это то, что ОП уже знает. Ему нравится смотреть пример использования этих методов. – Tom

+1

Спасибо Том, я хочу знать, как я могу использовать новый код 'Calendar.set (Calendar.HOUR_OF_DAY, int hours)' в моем более раннем коде, который я уже написал. Я хочу знать, как интегрировать это в мой код. Например, 'this.startTime.Calendar.set (Calendar.HOUR_OF_DAY, час)' дает мне ошибку. Я не уверен, что добавлю его в свой код. – androidlive

Смежные вопросы