Help us understand the problem. What is going on with this article?

【Java】雑日付取得

More than 1 year has passed since last update.

抜粋……

System.currentTimeMillis

エポックから経過した時間をミリ秒で返す(long型)。
処理に何秒かかったかを計算したい時などに。

Example.java
long start = System.currentTimeMillis();
// ここで何らかの時間のかかる処理
long end = System.currentTimeMillis();

System.out.println("処理にかかった時間は" + (end - start) + "msecです");

Date.getTime

ちゃんと書くとjava.util.Dateクラス。
newすることで時刻のフィールド(long型)を持つインスタンスになる。

Example.java
// コンストラクタへの引数なしでインスタンス化
Date now = new Date();
System.out.println(now); // 現在時刻の表示

// これのlong値を取り出したいときはgetTime()メソッド
long lng = now.getTime();

// コンストラクタへの引数ありでインスタンス化
Date past = new Date(1316622225935L);
System.out.println(past); // 指定時刻の表示

toString()メソッドを使えば、読みづらいが文字列を取得できる。

Example.java
Date d = new Date();
String str = d.toString()
System.out.println(str);
// Thu May 09 23:31:59 JST 2019 こういう見た目で出てくる。

Calender クラスの諸々メソッド

以下のフィールドを持つ。年月日時分秒のこと。すべてpublic static final int

  • YEAR
  • MONTH
  • DAY_OF_MONTH
  • HOUR
  • MINUTE
  • SECOND

そして以下のメソッドを持つ。

  • getInstance()
  • set():int型を6個渡すと、Calendarに時間をセットする。
  • get()Carendar.YEAR等を渡すと、Calendarにセットされているintを返す。
  • setTime:Date型を渡すと、Calendarに時間をセットする。戻り値はvoid。
  • getTime():セットされている時間をDate型で返す。
Example.java
import java.util.Calendar;
import java.util.Date;
public class Example{

    // 年月日時分秒を指定してDateインスタンスを生成する方法
    Calendar c = Calendar.getInstance();
    c.set(2019, 5, 13, 22, 37, 51); // 2019年5月13日22時37分51秒
    Date d = c.getTime();

    // set()メソッドはこういう書き方もできる。
    c.set(Calendar.YEAR, 2019);

    // Dateインスタンスから年月日時分秒を取得する方法
    Date d = new Date();
    Calendar c = Calendar.getInstance();
    c.setTime(d);

    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int day = c.get(Calendar.DAY_OF_MONTH);
    int hour = c.get(Calendar.HOUR);
    int minute = c.get(Calendar.MINUTE);
    int second = c.get(Calendar.SECOND);
}

この他にも大量にメンバを持っているから使い方はまぁいっぱい……

SimpledateFormatクラスの諸々メソッド

書式文字列の形で日付を格納してくれる。

  • y:年
  • M:月
  • d:日
  • E:曜日
  • a/p:午前/午後
  • H:時(0〜23)
  • K:時(0〜12)
  • m:分
  • s:秒

yyyy/MM/dd HH:mm:ssといった形で記述すると、
2019/05/13 23:24:31といった形で返ってくる。

format()メソッドとparse()メソッドでDate型とString型をやり取りする。

Example.java
// Date型からString型の日付を取得
Date d = new Day();
SimmpleDateFormat f = new SimpleDateFormt("yyyy/MM/dd HH:mm:ss");
String s = f.format(d)

// String型からDate型を取得
Date d = f.format(2019/05/13 23:28:10); // 2019年5月13日23時28分10秒

参考書籍

スッキリわかるJava入門第二版
Pp.532-540

shg3
学習
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away