ひよこの外部記憶

めもおきば

java.util.Dateの写経

動くようになったのでまとめた事を書く
Dateの写経の置き場所(Github)


間違いに気づいたら教えてください

前提、時間の扱いについて

UTC
世界協定時。セシウムがどうにかなった時の周期で、天文学的に決まる時間GMTとの差をうるう秒によって調整している。
GMT
GMTは市民が使うために太陽の動きを元にした時間(自転は早くなったり遅くなったりするため、一秒が安定しない)

UTCGMTに合わせてうるう秒とか使って運用されているセシウムがどうにかなった時の時間をGMTとズレが少なくなるように運用している。

Dateクラスの駆動について

DateクラスにおけるUTC
UTCには対応しているけど厳密じゃない(JVMに依存しているため)

※Dateクラスのコメントに記述あり

secondは0〜61
同じ分でうるう秒が2回起こる時に備えてこの範囲になっている
日付の限界
Sun Aug 17 16:12:55 JST 2,9227,8994

(Long型の限界)・・・余裕だという事が分かった

Dateを動かすために

java.utilのDate型にキャストするメソッドを持つものはほぼコピーする必要あり
自分の所で作ってるクラスはそりゃあ別物ですもの
package privateのメソッドが必要な時もコピーの必要あり
utilクラスの中にはpackage privateを持つメソッドがいくつかあり、それを他のutilクラスで利用している

その他直接java.util.*へのキャストを要求している物は必要:(現時点の私では)ソースを弄れないのでローカルに持ってきて中弄る

sun.util.*
openjdkの中にある

Eclipseに関して

  • outlineのメソッドの横を見れば修飾子が分かる
  • Eclipseのショートカットキー
    • F3:その宣言に飛べる
    • Ctrl + .:次の警告またはエラーに飛ぶ(Ctri + ,で前のに飛ぶ)
    • Ctrl + ↑or↓:次(or前)のメソッドに飛べる