TL;博士
myGregCal
.toZonedDateTime() // Convert from legacy class GregorianCalendar to modern ZonedDateTime.
.getHour() // Get hour-of-day, 0-23.
java.time
与替换那些麻烦的老传统现代java.time类容易得多日期时间课程。
ZonedDateTime
类表示具有纳秒分辨率的特定时区中时间线上的时刻。
使用添加到旧类中的新方法从GregorianCalendar
转换而来。
ZonedDateTime zdt = myGregCal.toZonedDateTime() ;
或者从GregorianCalendar
类别开始新鲜。
ZoneId z = ZoneId.of("America/Montreal");
ZonedDateTime zdt = ZonedDateTime.of(2010 , Month.JANUARY , 1 , 7 , 20 , 0 , 0 , z);
如果你想只是时间的日部分工作,提取LocalTime
。
LocalTime localTime = zdt.toLocalTime() ;
如果你真的想要小时和分钟的整数,你可以询问这些。
int hour = zdt.getHour();
int minute = zdt.getMinute();
关于java.time
的java.time框架是建立在Java 8和更高版本。这些类取代了日期时间类legacy,如java.util.Date
,Calendar
,& SimpleDateFormat
。
Joda-Time项目现在位于maintenance mode,建议迁移到java.time类。请参阅Oracle Tutorial。并搜索堆栈溢出了很多例子和解释。规格是JSR 310。
从何处获取java.time类?
的ThreeTen-Extra项目与其他类扩展java.time。这个项目是未来可能增加java.time的一个试验场。您可以在这里找到一些有用的类,如Interval
,YearWeek
,YearQuarter
和more。
这是一个很好的。总是会返回11吗? : - )以下是更多信息:http://java.sun.com/javase/6/docs/api/java/util/Calendar.html – OscarRyz 2010-04-24 02:46:31
仅供参考,麻烦的旧日期时间类,例如['java.util。日期'](https://docs.oracle.com/javase/9/docs/api/java/util/Date.html),['java.util.Calendar'](https://docs.oracle.com /javase/9/docs/api/java/util/Calendar.html)和'java.text.SimpleDateFormat'现在是[legacy](https://en.wikipedia.org/wiki/Legacy_system),由[Java时间](https://docs.oracle.com/javase/9/docs/api/java/time/package-summary.html)内置于Java 8和Java 9的类。请参见[Oracle指南]( https://docs.oracle.com/javase/tutorial/datetime/TOC.html)。 – 2018-02-01 06:24:01