我在java中得到错误的小时和分钟
我尝试用java获取当前时间和小时:我在java中得到错误的小时和分钟,java,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; /** *
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;
}
但不知何故,现在我得到了一小时11分钟12分钟的时间,我错了什么?感谢您使用日历API不正确:
- 此时,您正在访问Calendar类的
字段,即static int
- 要获取正确的时间/日期,请使用Calendar类的方法
日历.HOUR\u OF_DAY
和日历.MINUTE
只是整数常量,您必须使用它们来获取日历实例的相应字段:
calendar.get(Calendar.HOUR_OF_DAY);
使用
Calendar.HOUR OF_DAY是常量获取java中的当前小时数
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); // Choose your time format
Date date = new Date();
return dateFormat.format(date);
}
你得到的时间和分钟不正确。试试看
this.hour = calendar.get(Calendar.HOUR_OF_DAY);
this.minute = calendar.get(Calendar.MINUTE);
你的代码错了。你需要改变
int hour=Calendar.hour\u OF_DAY;
int minute=Calendar.minute代码>
借
this.hour=calendar.get(calendar.hour/OF\u DAY);
this.minute=calendar.get(calendar.minute)代码>尝试使用Joda Time而不是标准的java.util.Date类。Joda时间库有更好的处理日期的API
DateTime dt = new DateTime(); // current time
int month = dt.getMonth(); // gets the current month
int hours = dt.getHourOfDay(); // gets hour of day
它给出了正确的答案
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);
}
}
java.time
您使用的是麻烦的旧日期时间类java.time类。现在被java.time类取代。特别是在课堂上
需要时区来确定一天中的当前时间。一天中的日期和时间在全球任何特定时刻都因地区而异
ZoneId z = ZoneId.of( "America/Montreal" );
LocalTime lt = LocalTime.now( z );
int hour = lt.getHour();
int minute = lt.getMinute();
不知怎的,我每小时都有同样的时间!它应该是calendar.get(calendar.HOUR\u OF\u DAY)
ZoneId z = ZoneId.of( "America/Montreal" );
LocalTime lt = LocalTime.now( z );
int hour = lt.getHour();
int minute = lt.getMinute();