Java - 使用时间(小时和分钟)

时间:2014-01-13 00:38:08

标签: java time

我想检索当前系统小时,当用户点击Button1时,var“ct”将是当前系统小时+1。

然后,我希望当var ct =当前系统小时时,程序将文本字段文本设置为“完成”,但我似乎无法使用时间。

我在主要班级:

Calendar now = Calendar.getInstance();
        int hour = now.get(Calendar.HOUR_OF_DAY);
        int minute = now.get(Calendar.MINUTE);
        int second = now.get(Calendar.SECOND);
int ct=0;


When user click Button1
  name = jTextField1.getText();
         ct = minute + 1;     
        jLabel3.setText("Ends at "+ct);

现在我如何永久运行一个方法来检查ct =当前小时?

3 个答案:

答案 0 :(得分:2)

Java的日期/时间处理非常好被认为非常糟糕。如果你有自由,你可以使用Joda-Time库。

DateTime now = new DateTime();
int hour = now.getHourOfDay();

对我而言,它比Java的日期/时间提供的更具可读性。此外,还支持实际持续时间,仅限日期,仅限时间等...

答案 1 :(得分:1)

检查是否ct==current-hour

的方法
public static boolean compareToHour(int arg)
{
    Calendar temp = Calendar.getInstance();
    int tempHour = temp.get(Calendar.HOUR_OF_DAY);
    return arg==tempHour;

}

要比较两者,请在任何地方运行以下方法:compareToHour(ct)

答案 2 :(得分:0)

TL;博士

ZonedDateTime.now( ZoneId.of( "America/Montreal" ) )
             .getHour()

使用java.time

现代的方法是使用java.time类。

以UTC格式获取当前时刻。

Instant instant = Instant.now(); 

调整到所需/预期的时区。您可以检查JVM的当前默认时区。但是要知道,在运行期间,JVM中任何应用程序的任何线程中的任何代码都可以随时更改默认值。因此,如果关键,请指定所需/预期的时区,询问用户是否需要。

应用ZoneId获取ZonedDateTime个对象。

ZoneId z = ZoneId.of( "America/Montreal" );  // Or ZoneId.systemDefault()
ZonedDateTime zdt = instant.atZone( z );

你可以查询一小时。

int hour = zdt.getHour(); 

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和& SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore