私は自分のローカルPCシステム時刻を自分のアプリケーションにフェッチまたは同期するためにJava
でコードを検索しています。
これを試して:
import Java.text.SimpleDateFormat;
import Java.util.Calendar;
public class currentTime {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println( sdf.format(cal.getTime()) );
}
}
SimpleDateFormatは好きなようにフォーマットできます。追加情報については、Java APIを参照してください。
両方
new Java.util.Date()
そして
System.currentTimeMillis()
現在のシステム時刻を表示します。
Instant.now() // UTC
…または…
ZonedDateTime.now(
// Specify time zone.
ZoneId.of( "Pacific/Auckland" )
)
バンドルされているJava.util.Date
/.Calendar
クラスは非常に面倒です。避けてください。これらは現在レガシーであり、 Java.time フレームワークに取って代わりました。
代わりに、次のどちらかを使用してください。
ZonedDateTime zdt = ZonedDateTime.now();
古いコードに必要な場合は、Java.util.Dateに変換してください。 Instant
name__ に進んでください。これは、 _ utc _ のタイムライン上の瞬間です。
Java.util.Date date = Java.util.Date.from( zdt.toInstant() );
暗黙的にJVMの 現在のデフォルトのタイムゾーン に頼るのではなく、明示的にあなたの 希望する/予想されるタイムゾーン を指定する方が良いでしょう。
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( zoneId ); // Pass desired/expected time zone.
参考までに、 Joda-Time プロジェクトは メンテナンスモード になっており、 Java.time クラスへの移行を推奨しています。
DateTime now = DateTime.now();
他のクラスと相互運用するためにJoda-Time DateTime オブジェクトからJava.util.Dateに変換するには…
Java.util.Date date = now.toDate();
投稿する前にStackOverflowを検索してください。あなたの質問はすでに質問され回答されています。
Java.time フレームワークは、Java 8以降に組み込まれています。これらのクラスは、 Java.util.Date
、 Calendar
name__ 、& SimpleDateFormat
name__ などの厄介な古い レガシー 日時クラスに代わるものです。
Joda-Time プロジェクトは、現在は メンテナンスモード になっており、 Java.time クラスへの移行を推奨しています。
詳細については、 Oracleチュートリアル を参照してください。そして多くの例と説明についてはStack Overflowを検索してください。指定は JSR 310 です。
Java.timeクラスはどこで入手できますか?
ThreeTen-Extra プロジェクトは、追加クラスでJava.timeを拡張します。このプロジェクトは、Java.timeに将来追加される可能性があることを証明するものです。 Interval
name__ 、 YearWeek
name__ 、 YearQuarter
name__ 、 more など、便利なクラスがいくつかあります。
System.currentTimeMillis()
他のことはすべてうまくいきます。例えばnew Date()はSystem.currentTimeMillis()を呼び出します。
もっと効率的で互換性のあるこの方法を試してください。
SimpleDateFormat time_formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSS");
String current_time_str = time_formatter.format(System.currentTimeMillis());
//Log.i("test", "current_time_str:" + current_time_str);
さらに開発者に知らせるために、そしてBasil Bourqueに感謝して、私はこのトピックに私の石を加えたいだけです。
単純にHH:MM:SSフォーマットを取得したい場合は、次のようにします。
LocalTime hour = ZonedDateTime.now().toLocalTime().truncatedTo(ChronoUnit.SECONDS);
乾杯。
P.S .:これは少なくともJava 8でのみ機能するでしょう。
上記のようにあなたが使用することができます
Date d = new Date();
または使用
Calendar.getInstance();
それともミリ秒で欲しいのなら
System.currentTimeMillis()
これを試して:
final String currentTime = String.valueOf(System.currentTimeMillis());
あなたが何を意味しているのか本当によくわからないが、あなたはおそらく必要なだけである
Date d = new Date();
あなたはnew Date()を使うことができ、それはあなたに現在の時間を与えるでしょう。
もしあなたがそれを何らかのフォーマットで表現する必要があるならば(そして通常あなたはそれをする必要があります)それからフォーマッターを使用してください。
DateFormat df = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, new Locale ("en", "EN"));
String formattedDate = df.format (new Date ());
new Date()。getTime()にバグがあります。
Date date = new Date();
System.out.println(date);
System.out.println(date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
long t1 = date.getTime();
System.out.println((t1 / 1000 / 60 / 60) % 24 + ":" + (t1 / 1000 / 60) % 60 + ":" + (t1 / 1000) % 60);
long t2 = System.currentTimeMillis();
System.out.println((t2 / 1000 / 60 / 60) % 24 + ":" + (t2 / 1000 / 60) % 60 + ":" + (t2 / 1000) % 60);
それは私に間違った時間ミリを返します。 System.currentTimeMillis()
も。 Dateインスタンスに対応するタイムミリを教えてもらうので、異なるタイムゾーンからのものではなく一致するものを返さなければなりません。変な方法で廃止予定のメソッドが正しい値を返す唯一のものです。
システム時刻を取得するには、Calendar.getInstance()。getTime()を使用してください。
そして毎回currenttimeになるようにCalendarの新しいインスタンスを取得する必要があります。
Javaコードからchangesystemにコマンドラインを使用できます。
現在の日付を取得するにはこれを試してください。ゲッターを使用して現在の時、分、秒を取得することもできます。
new Date(System.currentTimeMillis()).get....()
これはかなり古い質問です。しかし、それを明確にしたいと思います。
Date d = new Date()
現在のバージョンのJavaでは廃止されています。推奨される方法はカレンダーオブジェクトを使うことです。例えば:
Calendar cal = Calendar.getInstance();
Date currentTime = cal.getTime();
私はこれが将来この質問を参照するかもしれない人々に役立つことを願っています。皆さん、ありがとうございました。