Java:getMinutes和getHours

如何获得自Date.getHoursDate.getMinutes被弃用的小时和分钟? 我在Googlesearch中find的示例使用了不推荐使用的方法。

尝试使用Joda时间而不是标准的java.util.Date类。 乔达时间库有更好的处理date的API。

 DateTime dt = new DateTime(); // current time int month = dt.getMonth(); // gets the current month int hours = dt.getHourOfDay(); // gets hour of day 

看到这个问题 ,利用乔达时间库的利弊。

Joda时间也可以作为标准组件包含在未来的Java版本中,请参阅JSR-310 。


如果您必须使用传统的java.util.Date和java.util.Calendar类,请参阅JavaDoc的帮助( java.util.Calendar和java.util.Date )。

您可以使用像这样的传统类来从给定的Date实例中获取字段。

 Date date = new Date(); // given date Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance calendar.setTime(date); // assigns calendar to given date calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format calendar.get(Calendar.HOUR); // gets hour in 12h format calendar.get(Calendar.MONTH); // gets month number, NOTE this is zero based! 

从Date.getHours的Javadoc

As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY)

所以使用

 Calendar rightNow = Calendar.getInstance(); int hour = rightNow.get(Calendar.HOUR_OF_DAY); 

和getMinutes的等价物。

首先,导入java.util.Calendar

 Calendar now = Calendar.getInstance(); System.out.println(now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE)); 

java.time

虽然我是Joda-Time的忠实粉丝,但是Java 8引入了java.time包,这个包终于成为了一个有价值的Java标准解决scheme! 阅读这篇文章, Java SE 8 Date and Time ,了解有关java.time的小时和分钟以外的大量信息。

特别是,看看LocalDateTime类。

时间和分钟:

 LocalDateTime.now().getHour(); LocalDateTime.now().getMinute(); 

尝试日历。 使用getInstance获取日历对象。 然后使用setTime来设置所需的date。 现在你可以使用get(int field)和HOUR_OF_DAY等适当的常量来读取你需要的值。

http://java.sun.com/javase/6/docs/api/java/util/Calendar.html

我会build议寻找广告乔达尔时间。 http://www.joda.org/joda-time/

我害怕增加另一个图书馆到我的厚实的项目,但它只是简单,快速,聪明,真棒。 另外,它在一定程度上与现有的代码很好。

虽然我不build议这样做,但我认为值得指出的是,尽pipejava.util.Date上的许多方法已被废弃,但它们仍然有效。 在微不足道的情况下,使用它们可能是可以的。 另外,java.util.Calendar相当慢,所以Date中的getMonth和getYear可能会更快。

import java.util.*您可以使用日历和格式化程序类创build和分钟。 Calendar cal = Calendar.getInstance()Formatter fmt=new Formatter()并设置显示时间和分钟格式fmt.format("%tl:%M",cal,cal)并打印System.out.println(fmt)输出显示像10:12

 int hr=Time.valueOf(LocalTime.now()).getHours(); int minutes=Time.valueOf(LocalTime.now()).getMinutes(); 

这些函数将以小时和分钟返回int值。

 public static LocalTime time() { LocalTime ldt = java.time.LocalTime.now(); ldt = ldt.truncatedTo(ChronoUnit.MINUTES); System.out.println(ldt); return ldt; } 

这对我有用