我在java中得到假的时间和分钟

时间:2013-11-12 12:35:05

标签: 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我错了什么?感谢

9 个答案:

答案 0 :(得分:7)

Calendar.HOUR_OF_DAYCalendar.MINUTE只是整数常量,您必须使用它来获取日历实例的相应字段

calendar.get(Calendar.HOUR_OF_DAY);

答案 1 :(得分:3)

使用

 calendar.get(Calendar.MINUTE)

Calendar.HOUR_OF_DAY是常量

答案 2 :(得分:2)

你错误地得到小时和分钟。尝试。

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

答案 3 :(得分:1)

使用日历API不正确:

  • 目前您正在访问日历类的static int字段,即Calendar.HOUR
  • 要获取正确的时间/日期,请使用Calendar类的get(int field)方法。

答案 4 :(得分: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);

答案 5 :(得分: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);
}
 }

答案 6 :(得分:0)

在java中获取当前时间

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

答案 7 :(得分:0)

尝试使用Joda Time而不是标准的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

答案 8 :(得分: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();