【问题标题】:Comparing SimpleDateFormat output with number [duplicate]将 SimpleDateFormat 输出与数字进行比较 [重复]
【发布时间】:2017-06-06 07:56:16
【问题描述】:

我正在制作一个程序,每次时间达到一个小时时都会执行一些操作。

代码如下:

import java.text.*;
import java.util.Date;
class NMAP {
 public static void main(String[] args) {
  DateFormat dateFormat = new SimpleDateFormat("HH");
  Date date = new Date();
  if (dateFormat.format(date).equals(17)) {
   System.out.println(dateFormat.format(date));
  }
 }
}

应该是输出17(因为现在是17:00),但是什么都没有输出。

为什么不呢?

【问题讨论】:

  • 试试equals("17"),或者你正在比较StringInteger
  • 17 被自动装箱为值为 17 的 Integer 对象。对于其余部分,请参阅重复的问题。

标签: java if-statement time simpledateformat


【解决方案1】:

您正在将 dateFormat.equals(17) 字符串与整数进行比较

无论如何都会返回 false,因为它们是不同的类型。

你必须做dateFormat.equals("17")


因为有些时候你会需要 java8 的强大功能:

LocalTime now = LocalTime.now();
System.out.println(now);
System.out.println(now.getHour() == 17);

【讨论】:

    猜你喜欢
    • 2019-08-20
    • 1970-01-01
    • 2016-07-08
    • 2021-07-10
    • 1970-01-01
    • 2011-10-19
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多