回答編集履歴
2
質問の内容と無関係な部分を明示
answer
CHANGED
@@ -18,6 +18,10 @@
|
|
18
18
|
|
19
19
|
と、言ってますが、long値を直接使ってました。下記のjava.timeパッケージ群を使わないなら実はおすすめだったりww
|
20
20
|
|
21
|
+
###以下Androidでは採用されていないパッケージのため、質問と関係ない部分です。
|
22
|
+
勘違いして記入してました。
|
23
|
+
(将来的にはわかりませんが)
|
24
|
+
|
21
25
|
---
|
22
26
|
実はjava8でDateの次のデメリットを改善するパッケージ郡が作られています。
|
23
27
|
0. そもそも可変オブジェクトである。
|
1
書式の改善と追記
answer
CHANGED
@@ -12,9 +12,13 @@
|
|
12
12
|
「時間的操作のあるものを表すオブジェクト」
|
13
13
|
Dateが「特定の時点」を表すものであるのに対し、現実世界のカレンダーや時計などのように時間的操作のあるものを表すように調整されています。
|
14
14
|
|
15
|
+
---
|
15
16
|
私個人としては特定の時点を表す意味合いが大きい変数には「Date」を、変化する時間を表すものに対しては「Calendar」を使っていました。
|
16
17
|
(また、いろいろなコストが高いCalendarは特定の時点をあらわすのには不向きです。new Date()とgetInstance()をループ処理内に作ると改善されていっているとはいえ明らかに動作スピードが変わります。)
|
17
18
|
|
19
|
+
と、言ってますが、long値を直接使ってました。下記のjava.timeパッケージ群を使わないなら実はおすすめだったりww
|
20
|
+
|
21
|
+
---
|
18
22
|
実はjava8でDateの次のデメリットを改善するパッケージ郡が作られています。
|
19
23
|
0. そもそも可変オブジェクトである。
|
20
24
|
オブジェクト変数にDateを使用していると、思ってもいない部分で変更されていたのに気づきにくく外部で変更することができてしまう。
|
@@ -22,6 +26,8 @@
|
|
22
26
|
基本的に世界標準時にて表しているのだが表示する際はタイムゾーンを意識して使用しなくてはならなく、意識しずに作ることも可能だが本来の意味合いが薄い。
|
23
27
|
0. Calendarがあるとはいえ時間量の操作がめんどい
|
24
28
|
そもそも、時間量を表すオブジェクトではないため3日と3時間を足すためには操作が2度、3度あったりする。
|
29
|
+
0. 使用したオブジェクトにおけるメソッドの引数がプリミティブ型となり間違って使っても気づきにくいし、それぞれ作らなければならない.
|
30
|
+
例えばadd(int y,int m,int d,int h,int mi,int s)とか引数の多いものを作らなくてはならなかったり、setTime(int hour,int minute,int second)に入れるhourに16を入れ無くてはならないのに4を入れたり。
|
25
31
|
0. その他
|
26
32
|
「日付だけを表したいのに・・・」「時間だけを表したいのに・・・・」「・・・バグあるやん」などなど
|
27
33
|
|
@@ -40,9 +46,11 @@
|
|
40
46
|
また「時間量」を表すオブジェクトが作られています。
|
41
47
|
「日付単位の時間量を表すPeriod」
|
42
48
|
「秒、ナノ秒単位の時間量を表すDuration」
|
49
|
+
前述のメソッドの引数にこれらを指定しておけば使用する際何を入れているのか明確になります。
|
50
|
+
(使用時の負担を強いるかわりに間違いが減ります)
|
43
51
|
|
44
52
|
[https://docs.oracle.com/javase/jp/8/docs/api/index.html?java/time/package-summary.html](https://docs.oracle.com/javase/jp/8/docs/api/index.html?java/time/package-summary.html)
|
45
53
|
|
46
54
|
現在のやりたいことからみてこれらのパッケージ群を使用してみては?
|
47
55
|
まぁ、少し覚えなければならないこともありますが、
|
48
|
-
覚えておいて損はないとおもいますよ。
|
56
|
+
覚えておいて損はないとおもいますよ。
|