0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事は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を使用した方法では、他と違って様々な情報を取得できる。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?