如何比较Java中的原始时间?

del*_*ber 4 java time

例如,假设我有

String endTime = "16:30:45";
Run Code Online (Sandbox Code Playgroud)

我如何确定现在是否在此之前?

Boz*_*zho 15

首先,你需要解析这个:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss")
Date date = sdf.parse(endTime);
Run Code Online (Sandbox Code Playgroud)

然后,您可以创建使用日历来比较时间:

Calendar c = Calendar.getInstance();
c.setTime(date);
Calendar now = Calendar.getInstance();
if (now.get(Calendar.HOUR_OF_DAY) > c.get(Calendar.HOUR_OF_DAY) .. etc) { .. }
Run Code Online (Sandbox Code Playgroud)

或者,您可以创建一个日历now,并将其HOUR,MINUTE和SECOND字段设置为新日历中的字段.

有了joda-time,你可以做类似的事情.

new DateMidnight().withHour(..).widthMinute(..).isBefore(new DateTime())
Run Code Online (Sandbox Code Playgroud)