Skip to Content
Java クックブック、第 4 版
book

Java クックブック、第 4 版

by Ian F. Darwin
May 2025
Intermediate to advanced
638 pages
10h 22m
Japanese
O'Reilly Media, Inc.
Content preview from Java クックブック、第 4 版

第6章. 日付と時間

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

6.0 はじめに

Java 1.0のDate クラスと、それに代わるJava 1.1のCalendar クラスの矛盾と曖昧さに、開発者は10年半苦しんできた。シンプルで賢明な Date4Jや、より包括的な Joda-Timeパッケージなど、いくつかの代替Date 代替パッケージが登場した。Java 8では、Javaコミュニティ・プロセスの庇護の下、開発者Stephen Colebourneが指揮を執るJSR-310という、日付とタイムを扱うための、一貫性があり、よく考えられた新しいパッケージが導入された。これは、彼の以前のパッケージJoda-Timeをベースにしているが、いくつかの重要な設計変更が加えられている。1このパッケージはISO 8601の日付に偏っており、デフォルトの形式は例えば2015-10-23T10:22:45である。しかし、もちろん他のカレンダースキームでも動作する。

新しいAPIの主な利点のひとつは、、日付/時刻の加算/減算といった便利な演算子を提供することだ。これらの便利な演算子を何度も再実装することで、開発者は多くの時間を浪費していた。とはいえ、何百万行ものコードが旧APIに基づいているので、それらを簡単にレビューし、この章の最後のレシピであるレシピ6.9で、新APIとレガシーコードとのインタフェースを検討する。

新しいAPIのもうひとつの利点は、ほとんどすべてのオブジェクトが不変性であり、スレッドセーフであることだ。これは、超並列時代にまっしぐらに進んでいく中で、大きな利点となるだろう。

set メソッドは存在せず、従ってゲッターメソッドのパラダイムは常に意味をなさないので、APIはそのようなメソッドに代わる一連の新しいメソッドを提供する(表6-1参照)。

表6-1. 新しい日付/時刻API:共通メソッド
名前付け 説明

at

別のオブジェクトと組み合わせる

format

指定されたフォーマッタを使って、フォーマットされた文字列を生成する。

from

ファクトリー:入力パラメータをターゲットのインスタンスに変換する。

get

インスタンスから1つのフィールドを取り出す

is

与えられたオブジェクトの状態を調べる

minus

与えられた金額を減算したコピーを返す

now

BuilderFactory: 現在の時刻や日付などを取得する。

of

ファクトリー:入力を解析して新しいメソッドを作成する

parse

ファクトリー:単一の入力文字列を解析し、ターゲットのインスタンスを生成する。

plus

指定された金額を加算したコピーを返す

to

このオブジェクトを別の型に変換する

with

与えられたフィールドを変更したコピーを返す。set メソッドを置き換える。

JSR 310 APIは、十数個の主要クラスを規定している。時間を表すものは、連続時間か人間時間である。連続時間は、Unix時間に基づくもので、(コンピューター)時間の黎明期からの深い真理であり、単調に増加する単一の数値として表現される。Unixの時間値0は、1970年1月1日(UTC)(Unixが発明された頃)の最初の1秒を表す。そこでのインクリメントの各単位は、1秒の時間を表していた。しかし、1970年からの秒数を表す32ビットの整数は、西暦2038年というかなり早い時期になくなってしまう。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

最新の Java レシピ

最新の Java レシピ

Ken Kousen
Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Javaによる関数型プログラミング ―Java 8ラムダ式とStream

Venkat Subramaniam, 株式会社プログラミングシステム社
MySQL クックブック、第 4 版

MySQL クックブック、第 4 版

Sveta Smirnova, Alkin Tezuysal

Publisher Resources

ISBN: 9798341650336