この記事はJavaとPythonを基礎から学びたい私のための Advent Calendar 2024の10日目の記事です。
時間を知る
Javaで現在の時刻を知ることができるようです。しかも簡単に、時間だけでなく日付とか細かく指定することもできるみたいです。
現在の日付と時間
現在の日付と時間はこのように表すことができました。
import java.util.Date;
Date nowtime=new Date();
System.out.println(nowtime);
実行結果:Mon Dec 09 21:02:55 JST 2024
Dateを使うことで、現在の日時や時刻を取得することができます。ただし、Dateは最初にimportしないと使えないようです。
ちなみにスペースで区切られているので
import java.util.Date;
public class TEST {
public static void main(String[] args) {
Date nowtime=new Date();
String A=nowtime.toString();
String[] B=A.split(" ");
System.out.println(B[3]);
}
}
実行結果:21:16:25
いったんString型に変えてからスペースごとに区切って、出力したいものだけを出すこともできるようです。
Dateを使わない方法
1970年1月1日から経過したミリ秒を表す、long型の「currentTimeMillis」というものがあるようです。こちらはSystemのものでDateを使わないため、importが不要です。
public class TEST {
public static void main(String[] args) {
long A=System.currentTimeMillis();
System.out.println(A);
}
}
実行結果:1733746934564
ちなみに一日が1000×60秒×60分×24=86400000秒なので、これで割ることで1970年の元旦からの経過日数を出すことが可能です。
long A=System.currentTimeMillis();
long B=A/86400000;
System.out.println(B);
実行結果:20066
Calendarを用いた方法
import java.util.Calendar;;
public class TEST {
public static void main(String[] args) {
Calendar B=Calendar.getInstance();
System.out.println(B);
}
Calendarをimportして使います。getInstanceで、現在の日時などの情報を取得することができます。通常は、取得した情報の中から必要な情報を取り出して使用します。今回は中身を全部見てみます。
出力結果:java.util.GregorianCalendar[time=1733748564588,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2024,MONTH=11,WEEK_OF_YEAR=50,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=344,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=49,SECOND=24,MILLISECOND=588,ZONE_OFFSET=32400000,DST_OFFSET=0]
大量に出力されることがわかると思います。この中にはcurrentTimeMillisやDateの中身を含む様々な情報(例えば今日が今月の何週目かなど)が入っています。
必要な情報だけを取り出すときには、
System.out.println(B.get(Calendar.MONTH));
get(Calendar,必要なもの)の順に書けばよいそうです。ちなみにMONTH(月)は0からスタートするため1ずつずれます。そのため、この出力結果について今日は12月なので11となります。
ほかにも、今日が今年に入って何日目(DAY_OF_YEAR)とか今月の何週目(DAY_OF_WEEK)とか簡単に取得することができるようです。
LocalDateTime
この方法では、日時が取れます。
import java.time.LocalDateTime;
public class TEST {
public static void main(String[] args) {
LocalDateTime A = LocalDateTime.now();
System.out.println(A);
}
}
実行結果:2024-12-09T22:07:26.428
まとめ
日時を取得する方法はDate、Calendar,LocalDateTimeやcurrentTimeMillisなど様々な方法があった。Calendarを使用した方法では、他と違って様々な情報を取得できる。
参考文献