2013-11-12 5 views
-2

Я пытаюсь получить текущее время и час в Java:я фальшивую час и минуту в Java

import java.util.Calendar; 
import java.util.Date; 
public class Clock2 
{ 
    // instance variables - replace the example below with your own 
    private int minute; 
    private int hour; 
    private String daytime; 

    /** 
    * Constructor for objects of class Clock2 
    */ 
    public Clock2() 
    { 
     Date date = new Date(); 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTime(date); 
     this.hour = Calendar.HOUR_OF_DAY; 
     this.minute = Calendar.MINUTE; 
    } 

Но почему-то сейчас 13.33 я получаю час 11 минут 12, что делать я неправильно? Благодаря

+0

Как-то я всегда получаю одну и ту же минуту в час! –

+1

Это должно быть 'calendar.get (Calendar.HOUR_OF_DAY)' –

ответ

1

Его дает правильный ответ

import java.util.Calendar; 
import java.util.Date; 

public class Clock2 { 

public static void main(String[] args) { 
    Clock clock = new Clock(); 
} 

} 

class Clock { 
/** 
* Constructor for objects of class Clock2 
*/ 
private final int minute; 
private final int hour; 

public Clock() { 
    Date date = new Date(); 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(date); 
    hour = calendar.get(Calendar.HOUR_OF_DAY); 
    minute = calendar.get(Calendar.MINUTE); 
    System.out.println(hour + " " + minute); 
} 
} 
1

Использование использует API Календаря неправильно:

  • На данный момент вы обращаетесь static int поля класса календаря, т.е. Calendar.HOUR.
  • Чтобы получить правильное время/дату, используйте метод класса Calendar get(int field).
7

Calendar.HOUR_OF_DAY и Calendar.MINUTE просто целые константы, которые вы должны использовать, чтобы получить соответствующее поле календарного экземпляра:

calendar.get(Calendar.HOUR_OF_DAY); 
3

использования

calendar.get(Calendar.MINUTE) 

Calendar.HOUR_OF_DAY постоянен

0

Получение текущего часа в java

private String getDateTime() { 
    DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); // Choose your time format 
    Date date = new Date(); 
    return dateFormat.format(date); 
} 
2

Неторопливо вы получаете час и минуту. Пытаться.

this.hour = calendar.get(Calendar.HOUR_OF_DAY); 
    this.minute = calendar.get(Calendar.MINUTE); 
1

Ваш код является неправильным. Вам нужно изменить

int hour = Calendar.HOUR_OF_DAY; int minute = Calendar.MINUTE;

по

this.hour = calendar.get(Calendar.HOUR_OF_DAY); this.minute = calendar.get(Calendar.MINUTE);

0

Попробуйте использовать Joda время вместо стандартных классов java.util.Date. Библиотека Joda Time имеет гораздо лучший API для обработки дат.

DateTime dt = new DateTime(); // current time 
int month = dt.getMonth();  // gets the current month 
int hours = dt.getHourOfDay(); // gets hour of day 
0

java.time

Вы используете хлопотно старых дата-классах времени java.time классов. Теперь вытесняется классами java.time. В частности, класс LocalTime.

Для определения текущего времени суток требуется часовой пояс. Дата и время дня изменяются по всему миру по зонам за любой данный момент.

ZoneId z = ZoneId.of("America/Montreal"); 
LocalTime lt = LocalTime.now(z); 
int hour = lt.getHour(); 
int minute = lt.getMinute(); 
Смежные вопросы