目次

日時

日時取得

Dateクラス

import java.util.Date;
import java.text.SimpleDateFormat;
 
 ・・・
 
Date now = new Date();
System.out.println(now);
 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy'/'MM'/'dd' 'HH':'mm':'ss");
System.out.println(sdf.format(now));
Sun Jun 10 15:16:09 JST 2018
2018/06/10 15:16:09

Instantクラス、ZonedDateTimeクラス

※Java8以降

import java.time.*;
 
 ・・・
 
Instant i = Instant.now();
ZonedDateTime z1 = i.atZone(ZoneId.of("Asia/Tokyo"));
 
ZonedDateTime z2 = ZonedDateTime.now();
 
System.out.println(z1);
System.out.println(z2);
2018-06-10T22:33:08.600+09:00[Asia/Tokyo]
2018-06-10T22:33:08.728+09:00[Asia/Tokyo]

LocalDateTimeクラス

※Java8以降

import java.time.*;
 
 ・・・
 
LocalDateTime t = LocalDateTime.now();
 
System.out.println(t);
2018-06-10T22:36:11.303

時刻を表すクラスと保持情報

※Java8以降

クラス 情報
時刻 ゾーン
ZonedDateTime
LocalDateTime -
LocalDate - -
LocalTime - - - -
Year - - - -
YearMonth - - -
Month - - - -
MonthDay - - -

時間の計算

Periodクラス

import java.time.*;
import java.time.format.*
 
 ・・・
 
LocalDate from = LocalDate.of(2017, 4, 1);
LocalDate to = LocalDate.of(2018, 6, 10);
 
Period period = Period.between(from, to);
 
System.out.println(period);
System.out.println(period.getYears());
System.out.println(period.getMonths());
System.out.println(period.getDays());
System.out.println(period.toTotalMonths());
P1Y2M9D      ※1年2か月9日の意味
1
2
9
14

Durationクラス

import java.time.*;
 
 ・・・
 
LocalDateTime from = LocalDateTime.of(2018, 6, 10, 10, 0, 0);
LocalDateTime to = LocalDateTime.of(2018, 6, 10, 23, 59, 59);
 
Duration duration = Duration.between(from, to);
 
System.out.println(duration);
System.out.println(duration.toDays());
System.out.println(duration.toHours());
System.out.println(duration.toMinutes());
System.out.println(duration.getSeconds());
PT13H59M59S    ※13時間59分59秒という意味
0
13
839
50399