2009-05-25 8 views
101

Date.getHoursDate.getMinutesは廃止されてから、どのように時間と分を得るのですか?私がGoogleの検索で見つけた例は廃止されたメソッドを使用していました。 Date.getHoursJava:getMinutesとgetHours

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

のJavadocから

答えて

72

だから

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

メソッドとgetMinutesの等価を使用しています。まず

+2

だから... ...のために働きますか? – Michael

+0

http://stackoverflow.com/questions/8150155/java-gethours-getminutes-and-getseconds – Mark

33

、輸入java.util.Calendarの

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

カレンダーをお試しください。 getInstanceを使用してCalenderオブジェクトを取得します。次に、setTimeを使用して必要な日付を設定します。これで、HOUR_OF_DAYなどの適切な定数を持つget(int field)を使用して、必要な値を読み取ることができます。

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

2

私は広告ジョダ時間を探してお勧めします。 http://www.joda.org/joda-time/

私は太いプロジェクトに別のライブラリを追加することを恐れていましたが、それは簡単で速く、スマートで素晴らしいです。 さらに、ある程度、既存のコードでうまくいく。

145

標準の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時間は、将来のバージョンのJavaに標準コンポーネントとして含まれている場合があります。JSR-310を参照してください。


あなたは、伝統的なjava.util.Dateとjava.util.Calendarのクラスを使用して見なければならない場合は、ヘルプ(java.util.Calendarjava.util.Date)のための彼らのJavaDocの。

このような従来のクラスを使用して、指定された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! 
1

私はそうすることをお勧めしませんが、私はそれがjava.util.Dateの多くの方法が推奨されなくなりましたが、彼らはまだ動作しないことを指摘する価値があると思います。簡単な状況では、それらを使用することができます。また、java.util.Calendarは非常に遅いので、DateのgetMonthおよびgetYearは便利に速いかもしれません。

0

import java.util.*あなたは、カレンダーとフォーマッタクラスを使用して分を作り、分をすることができます。 Calendar cal = Calendar.getInstance()Formatter fmt=new Formatter()10:12

28

Javaのような表示時間と分fmt.format("%tl:%M",cal,cal)とプリントSystem.out.println(fmt)出力番組のフォーマットを設定します。時間

私はJoda-Timeのファンですが、Java 8は、最終的に価値あるJava標準ソリューションであるjava.timeパッケージを紹介しています!時間と分以外のjava.timeに関する豊富な情報については、この記事のJava SE 8 Date and Timeをお読みください。

特に、LocalDateTimeクラスを見てください。

時間と分:

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

これは最高の答えです。明示的なタイムゾーンを提供して、読者とあなた自身にタイムゾーンに敏感な操作であることを思い出させることができます: 'LocalDateTime.now(ZoneId.of(" Asia/Manilla "))'。一貫性を保つために 'now()'を一度だけ読んでください(2つの呼び出しの間に時間が入ります)。日付が本当に無関係な場合、 'LocalTime'も機能します。 –

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

これらの関数は、時間と分でint型の値を返します。

+0

重複しています。このアプローチは既に[回答者J.D.](http://stackoverflow.com/a/29270120/642706)で説明されています。 –

+0

それは 'java.sql.Time'ですか?あなたが 'java.time.LocalTime'を持っている時に、古くなったクラスを起動させる理由はまったくありません。あなたは過度に複雑です。 –

1
public static LocalTime time() { 
    LocalTime ldt = java.time.LocalTime.now(); 

    ldt = ldt.truncatedTo(ChronoUnit.MINUTES); 
    System.out.println(ldt); 
    return ldt; 
} 

これは私、私が今まで対応していない日から時間を取得したい場合は、この作業を行う方法を

+0

エレガント。なぜそれが機能するのか説明したいかもしれません。 –

関連する問題