当前位置: 首页 > 面试题库 >

Java 时间比较

江鸿羲
2023-03-14
问题内容

我有时间,hh:mm必须由用户以这种格式输入。

但是,我想比较上午10点到下午6点之间的时间(例如11:22)?但是,我该如何比较呢?


问题答案:

Java还没有一个好的内置Time类(它有一个用于JDBC查询的类,但这不是你想要的)。

一种选择是使用JodaTime API和它的本地时间类。

只使用内置的Java API,就只能使用java.util.Date。你可以使用SimpleDateFormat来解析时间,然后使用Date比较函数来查看时间是否在其他时间之前或之后:

SimpleDateFormat parser = new SimpleDateFormat("HH:mm");
Date ten = parser.parse("10:00");
Date eighteen = parser.parse("18:00");

try {
    Date userDate = parser.parse(someOtherDate);
    if (userDate.after(ten) && userDate.before(eighteen)) {
        ...
    }
} catch (ParseException e) {
    // Invalid date was entered
}

或者,你可以只使用一些字符串操作,也许使用正则表达式来提取小时和分钟部分,将它们转换为数字并进行数值比较:

Pattern p = Pattern.compile("(\d{2}):(\d{2})");
Matcher m = p.matcher(userString);
if (m.matches() ) {
    String hourString = m.group(1);
    String minuteString = m.group(2);
    int hour = Integer.parseInt(hourString);
    int minute = Integer.parseInt(minuteString);

    if (hour >= 10 && hour <= 18) {
        ...
    }
}

这实际上取决于你要完成的工作。



 类似资料:
  • 问题内容: 以我想使其正常工作的方式,这可能是不可能的,但是可以了。 数据库中的条目是: 但是,查询不返回任何结果。当然,如果涉及到日期,这将起作用,但是没有涉及。如果开始= ‘00:00:00’,它也将起作用。 问题答案: 我认为您正在寻找的是: 我不确定您是否需要使用CAST,尽管这也可以工作。

  • 问题内容: 我试图创建简单的功能,只是将一个时间的时区更改为另一个时区(假设UTC为+0700 WIB)。这是源代码。我有2个函数,第一个将具有相同日期时间的时区更改为+0700 WIB。其次是将给定时间的时区更改为。可以完美地工作,而另一个则不能。 将始终对这个结果fullfilled。 但这是同一时间吗?我错过了什么? 问题答案: 有一种比较日期的方法: 引用文档: 请注意,Go ==运算符不

  • 问题内容: 如何在PHP中比较时间? 我想这样说: 上面的代码无法正常打印。我期望如此。 问题答案: $ThatTime =”14:08:10”; if (time() >= strtotime($ThatTime)) { echo “ok”; } 使用(也考虑时区)的解决方案。

  • 我在试着比较时间和瞬间。这是我的剧本 这是我的表格 从< code > console . log(today . format(" hh:mm "))我得到这个结果< code>01:44。 在上面的脚本中,我总是转到<code>或<code>,因此有任何方法可以修复它吗? 这是我的小提琴 https://jsfiddle.net/s9wfh9ye/33/ 我的更新问题

  • 问题内容: 例如,假设我有 我如何确定现在是否在这个时间之前?我努力了 但是日期为1970年,因此比较失败 问题答案: 您总是可以做相反的事情:

  • D3的Time scale是d3.scale.linear比例尺的扩展,使用Javascript的Date对象作为其输入域(domain)。因此,不同于普通的线性比例尺(linear scale),domain的值会被强制转为时间类型而非数字类型;同样的,invert函数返回的是一个时间类型。最方便的是,time scale同样提供了基于time intervals的合适的打点器,解除了为任何基于