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