Java 8ノート第11編(タイムゾーン付き時間または日付)
ディレクトリ:第1編:java 8第01編(LambdaとStream API初識)第2編:java 8第02編(Lambda式基礎文法)第3編:java 8第03編(関数式インタフェース、一般的な4つの関数式インタフェース)第4編:java 8第04編(メソッド参照とコンストラクタ参照)第五編:深いjava 8第05編(Stream APIの操作->作成及び中間操作)第六編:深いjava 8第06編(Stream APIの操作->終了操作)第七編:深いjava 8第07編(Stream APIの操作->規約、収集)第八編:深いjava 8第08編(Stream APIの総合練習)第9編:java 8第09編(Fork/Joinフレームワークの使用とその利点)第10編:java 8第10編(時間新特新->DateTimeFormatter解析とフォーマット)第11編:java 8第11編(時間または日付付き)第12編:java 8第12編(インタフェースのデフォルト方法と静的方法)第13編:java 8第13編(その他の新しい特性->Optionalクラス/繰り返し注釈とタイプ注釈)
Java 8第10編(タイムゾーン付き時間または日付)に深く入り込む
Java 8の新しい日時API:LocalDate、LocalTime、LocalDateTimeクラスの例は、ISO-8601カレンダシステムを使用する日付、時刻、日付、および時刻をそれぞれ示す可変のオブジェクトである.単純な日付または時刻を提供し、現在の時刻情報は含まれません.タイムゾーンに関する情報も含まれません.
注:ISO-8601カレンダーシステムは国際標準化組織が制定した現代公民の日付と時間の表示法である.
11.1 LocalDate、LocalTime、LocalDateTime
11.2試験例の方法
11.3 Instantタイムスタンプ
Instantは主に「タイムスタンプ」の演算に使用されます.Unix元年(従来のUTCタイムゾーン設定では1970年1月1日午前0時)から経験した記述で演算される.
11.4 DurationとPeriod
11.5 TemporalAdjuster:時間補正器
11.6 DateTimeFormatter:解析とフォーマット
11.7.1タイムゾーンの処理01
11.7.2タイムゾーンの処理02
ソースのダウンロードアドレス:https://download.csdn.net/download/hello_world_qwp/10401249はトップページに戻ります.https://blog.csdn.net/Hello_World_QWP/article/details/80245129
Java 8第10編(タイムゾーン付き時間または日付)に深く入り込む
Java 8の新しい日時API:LocalDate、LocalTime、LocalDateTimeクラスの例は、ISO-8601カレンダシステムを使用する日付、時刻、日付、および時刻をそれぞれ示す可変のオブジェクトである.単純な日付または時刻を提供し、現在の時刻情報は含まれません.タイムゾーンに関する情報も含まれません.
注:ISO-8601カレンダーシステムは国際標準化組織が制定した現代公民の日付と時間の表示法である.
11.1 LocalDate、LocalTime、LocalDateTime
, ISO-8601 、 、 。
@Test
public void test01(){
LocalDate date = LocalDate.now();
System.out.println(date);
LocalTime time = LocalTime.now();
System.out.println("
"+time);
LocalDateTime dateTime = LocalDateTime.now();
System.out.println("
"+dateTime);
}
11.2試験例の方法
now() ,
of() , /
plusDays,plusWeeks,plusMonths,plusYears LocalDate 、 、 、
minusDays,minusWeeks,minusMonths,minusYears LocalDate 、 、 、
plus, minus Duration Period
withDayOfMonth,withDayOfYear,withMonth,withYear 、 、 、 LocalDate
getDayOfMonth (1-31)
getDayOfYear (1-366)
getDayOfWeek ( DayOfWeek )
getMonth , Month
getMonthValue (1-12)
getYear
until Period , ChronoUnits
isBefore, isAfter LocalDate
isLeapYear
@Test
public void test02() throws InstantiationException, IllegalAccessException{
// now
LocalDate date = LocalDate.now();
System.out.println(date);
// of
LocalDate date2 = LocalDate.of(2018, 04, 29);
System.out.println("
"+date2);
// plusDays,plusWeeks,plusMonths,plusYears
LocalDateTime time = LocalDateTime.now();
LocalDateTime time2 = time.plusDays(3);
LocalDateTime time3 = time2.plusWeeks(3);
LocalDateTime time4 = time3.plusMonths(3);
LocalDateTime time5 = time4.plusYears(3);
System.out.println("
"+time);
System.out.println(time2);
System.out.println(time3);
System.out.println(time4);
System.out.println(time5);
// plus, minus
LocalDate date3 = LocalDate.now();
LocalDate plus = date3.plus(Period.of(01, 04, 0));
LocalDate minus = date3.minus(Duration.ZERO);
System.out.println("
"+plus);
System.out.println(minus);
// withDayOfMonth,withDayOfYear,withMonth,withYear
LocalDate date4 = LocalDate.now();
LocalDate dayOfMonth = date4.withDayOfMonth(11);
LocalDate dayOfYear = date4.withDayOfYear(20);
LocalDate month = date4.withMonth(3);
LocalDate year = date4.withYear(2019);
System.out.println("
"+dayOfMonth);
System.out.println(dayOfYear);
System.out.println(month);
System.out.println(year);
// getDayOfMonth,getDayOfYear,getDayOfWeek,getMonth,getMonthValue,getYear
LocalDate date5 = LocalDate.now();
int dayOfMonth2 = date5.getDayOfMonth();
int dayOfYear2 = date5.getDayOfYear();
DayOfWeek dayOfWeek = date5.getDayOfWeek();
Month month2 = date5.getMonth();
int monthValue = date5.getMonthValue();
int year2 = date5.getYear();
System.out.println("
"+dayOfMonth2);
System.out.println(dayOfYear2);
System.out.println(dayOfWeek);
System.out.println(month2);
System.out.println(monthValue);
System.out.println(year2);
// until
LocalDate date6 = LocalDate.now();
Period until = date6.until(LocalDate.now());
System.out.println("
"+until);
// isBefore, isAfter
LocalDate date7 = LocalDate.now();
LocalDate date8 = LocalDate.of(2019, 05, 22);
boolean before = date7.isBefore(date8);
boolean after = date7.isAfter(date8);
System.out.println("
"+before);
System.out.println(after);
// isLeapYear
LocalDate date9 = LocalDate.now();
boolean year3 = date9.isLeapYear();
System.out.println("
"+year3);
}
11.3 Instantタイムスタンプ
Instantは主に「タイムスタンプ」の演算に使用されます.Unix元年(従来のUTCタイムゾーン設定では1970年1月1日午前0時)から経験した記述で演算される.
@Test
public void test03(){
Instant instant = Instant.now();
System.out.println(instant);
// OffsetDateTime
OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
System.out.println("
"+offsetDateTime);
// 。
int nano = instant.getNano();
System.out.println("
"+nano);
// 1970-01-01T00:00:00Z Instant
Instant epochSecond = Instant.ofEpochSecond(3);
System.out.println("
"+epochSecond);
// Instant 1970-01-01T00 :00:00Z
Instant epochMilli = Instant.ofEpochMilli(3);
System.out.println("
"+epochMilli);
}
11.4 DurationとPeriod
Duration: “ ”
Period: “ ”
@Test
public void test04(){
Instant now = Instant.now();
//
try {
TimeUnit.SECONDS.sleep(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
Instant now2 = Instant.now();
// Duration
Duration duration = Duration.between(now, now2);
System.out.println(duration.getSeconds());
LocalDate localDate = LocalDate.now();
LocalDate localDate2 = LocalDate.of(2008, 11, 27);
// Period , ,
Period period = Period.between(localDate2, localDate);
System.out.println("
"+period.getYears()); //
System.out.println(period.getMonths()); // 。
System.out.println(period.getDays()); // 。
}
11.5 TemporalAdjuster:時間補正器
: “ ” 。
@Test
public void test05(){
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
//
LocalDateTime dayOfMonth = localDateTime.withDayOfYear(3);
System.out.println("
"+dayOfMonth);
// ,
LocalDateTime dateTime = localDateTime.with(TemporalAdjusters.next(DayOfWeek.FRIDAY));
System.out.println("
"+dateTime);
// :
LocalDateTime localDateTime3 = localDateTime.with((date) -> {
LocalDateTime localDateTime2 = (LocalDateTime) date;
DayOfWeek dayOfWeek = localDateTime2.getDayOfWeek();
if(dayOfWeek.equals(DayOfWeek.FRIDAY)){
return localDateTime2.plusDays(3);
}else if(dayOfWeek.equals(DayOfWeek.SATURDAY)){
return localDateTime2.plusDays(2);
}else{
return localDateTime2.plusDays(1);
}
});
System.out.println("
"+localDateTime3);
}
11.6 DateTimeFormatter:解析とフォーマット
:
, ISO_LOCAL_DATE
, uuuu-MMM-dd
, long medium
@Test
public void test06(){
LocalDateTime dateTime = LocalDateTime.now();
//
DateTimeFormatter isoLocalDate = DateTimeFormatter.ISO_LOCAL_DATE;
String str = dateTime.format(isoLocalDate);
System.out.println(str);
//
DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("yyyy MM dd HH:mm:ss E");
String str1 = dateTime.format(ofPattern);
System.out.println("
"+str1);
//
LocalDateTime localDateTime = LocalDateTime.parse(str1, ofPattern);
System.out.println("
"+localDateTime);
}
11.7.1タイムゾーンの処理01
ZoneId: :
getAvailableZoneIds() :
of(id) : ZoneId
@Test
public void test07(){
//
ZoneId.getAvailableZoneIds()
.forEach(System.out::println);
}
11.7.2タイムゾーンの処理02
Java8 , :
ZonedDate、ZonedTime、ZonedDateTime
ID, ID “{ }/{ }”
:Asia/Shanghai
@Test
public void test08(){
//
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime);
//
ZoneId zone = zonedDateTime.getZone();
System.out.println("
"+zone);
//
ZonedDateTime zonedDateTime2 = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"));
System.out.println("
"+zonedDateTime2);
//
LocalDateTime localDateTime = LocalDateTime.now(ZoneId.of("Asia/Colombo"));
System.out.println("
"+localDateTime);
}
ソースのダウンロードアドレス:https://download.csdn.net/download/hello_world_qwp/10401249はトップページに戻ります.https://blog.csdn.net/Hello_World_QWP/article/details/80245129