Date.getHours
とDate.getMinutes
が廃止されてからの時間と分の取得方法Google検索で見つけた例では、非推奨のメソッドを使用しました。
標準のJava.util.Dateクラスの代わりに Joda Time を使用してみてください。 Joda Timeライブラリには、日付を処理するためのはるかに優れたAPIがあります。
DateTime dt = new DateTime(); // current time
int month = dt.getMonth(); // gets the current month
int hours = dt.getHourOfDay(); // gets hour of day
Joda Timeライブラリを使用する場合の長所と短所については、これを参照してください question .
Joda Timeは、標準コンポーネントとしてJavaの将来のバージョンにも含まれる可能性があります。 JSR-31 を参照してください。
従来の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に相当します。
私は Joda-Time のファンですが、 Java 8 は最終的に価値のある Java.time パッケージを導入しますJava 標準溶液!この記事 Java SE 8 Date and Time を読んで、時間と分以外のJava.timeに関する十分な情報を入手してください。
特に、 LocalDateTime
クラスを見てください。
時間と分:
LocalDateTime.now().getHour();
LocalDateTime.now().getMinute();
まず、Java.util.Calendarをインポートします
Calendar now = Calendar.getInstance();
System.out.println(now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE));
カレンダーをお試しください。 getInstanceを使用してCalender-Objectを取得します。次に、setTimeを使用して、必要な日付を設定します。これで、get(int field)をHOUR_OF_DAYなどの適切な定数とともに使用して、必要な値を読み取ることができます。
http://Java.Sun.com/javase/6/docs/api/Java/util/Calendar.html
ZonedDateTime.now().getHour()
…または…
LocalTime.now().getHour()
ZonedDateTime
J.D。による回答 は良いですが、最適ではありません。その回答はLocalDateTime
クラスを使用します。タイムゾーンまたはUTCからのオフセットという概念がないため、そのクラスは瞬間を表すことができません。
ZonedDateTime
を使用することをお勧めします。
ZoneId z = ZoneID.of( "America/Montreal" ) ;
ZonedDateTime zdt = ZonedDateTime.now( z ) ;
ZoneId
引数を省略すると、JVMの現在のデフォルトタイムゾーンを使用して、実行時に暗黙的に適用されます。
したがって、この:
ZonedDateTime.now()
…これと同じです:
ZonedDateTime.now( ZoneId.systemDefault() )
明示的であることが望ましく、希望する/予想されるタイムゾーンを渡します。デフォルトでは、実行時に 随時変更 を使用できます。
重要な場合は、ユーザーにタイムゾーンを確認します。
時間と分のZonedDateTime
を調べます。
int hour = zdt.getHour() ;
int minute = zdt.getMinute() ;
LocalTime
タイムゾーンなしで時刻だけが必要な場合は、LocalTime
を抽出します。
LocalTime lt = zdt.toLocalTime() ;
または、ZonedDateTime
に直接移動して、LocalTime
を完全にスキップします。
LocalTime lt = LocalTime.now( z ) ; // Capture the current time-of-day as seen in the wall-clock time used by the people of a particular region (a time zone).
Java.time フレームワークはJava 8以降に組み込まれています。これらのクラスは、厄介な古い legacyJava.util.Date
、 Calendar
、& SimpleDateFormat
などの日時クラスに取って代わります。
詳細については、 Oracle Tutorial を参照してください。また、Stack Overflowで多くの例と説明を検索してください。指定は JSR 31 です。
Joda-Time プロジェクトは、現在 メンテナンスモード であり、 Java.time クラスへの移行を推奨しています。
Java.timeオブジェクトをデータベースと直接交換できます。 JDBC 4.2 以降に準拠する JDBCドライバー を使用します。文字列もJava.sql.*
クラスも必要ありません。
Java.timeクラスはどこで入手できますか?
ThreeTen-Extra プロジェクトは、追加のクラスでJava.timeを拡張します。このプロジェクトは、Java.timeに将来追加される可能性のある証明の場です。 Interval
、 YearWeek
、 YearQuarter
、 more などの便利なクラスがあります。
int hr=Time.valueOf(LocalTime.now()).getHours();
int minutes=Time.valueOf(LocalTime.now()).getMinutes();
これらの関数は、時間と分でint値を返します。
広告のジョーダ時間を確認することをお勧めします。 http://www.joda.org/joda-time/
私は自分の分厚いプロジェクトに別のライブラリを追加することを恐れていましたが、それは簡単で高速、スマートで素晴らしいです。さらに、既存のコードである程度再生できます。
分と時間を取得するもう1つの方法は、SimpleDateFormatを使用することです。
SimpleDateFormat formatMinutes = new SimpleDateFormat("mm")
String getMinutes = formatMinutes.format(new Date())
SimpleDateFormat formatHours = new SimpleDateFormat("HH")
String getHours = formatHours.format(new Date())
public static LocalTime time() {
LocalTime ldt = Java.time.LocalTime.now();
ldt = ldt.truncatedTo(ChronoUnit.MINUTES);
System.out.println(ldt);
return ldt;
}
これは私のために働く
私はそうすることをお勧めしませんが、Java.util.Dateの多くのメソッドは非推奨になっていますが、まだ機能していることを指摘する価値があると思います。些細な状況では、それらを使用しても構いません。また、Java.util.Calendarは非常に遅いため、getMonthおよびgetYear on Dateの方が便利です。
import Java.util.*
カレンダーとフォーマッタクラスを使用して時間と分を取得できます。 Calendar cal = Calendar.getInstance()
およびFormatter fmt=new Formatter()
を表示し、時間と分を表示する形式を設定しますfmt.format("%tl:%M",cal,cal)
and System.out.println(fmt)
出力を10:12
のように表示します