日付関係

java8での日時書式化

java8で日時を書式化してみた。 // 一般的? print("LocalDateTime"); print(LocalDateTime.now()); // 2014-03-28T01:09:49.059 print(LocalDateTime.now().format(DateTimeFormatter.ofPattern("Gyyyy/MM/dd HH:mm:ss"))); // 西暦2014/03/28 01:09:49 // …

和暦

気になってちょっと試してみた。 Calendar c1 = Calendar.getInstance(new Locale("ja", "JP", "JP")); Calendar c2 = Calendar.getInstance(); SimpleDateFormat f1 = new SimpleDateFormat("GGGG yyyy/MM/dd", new Locale("ja", "JP", "JP")); SimpleDateF…

SimpleDateFormat。GMT。オフセット。

SimpleDateFormatでZを指定すると出力される文字。 +0900 言わずとしれたGMTとの時間差を示しているんだが・・・ RFCによると +09:00 が正しい形式らしい。 だもんだから、他の言語の実装とのやり取りを想定したWEBサービスでは使えない。 わざわざ自前で +0…

axis。日付変換の罠

axisを使っていて気になったことが一つ。 xsd:datetimeとjavaの日付を変換する際にGMT・JSTの違いによって9時間の誤差が生じることは以前のシステムで経験があったので、あらかじめCalendarのSerializer/Deserializerをカスタマイズして誤差を吸収していたが…

SystemUtils

Dateクラスの派生クラスを作ろうかとも思ったけど、こっちのほうが使い回しがきくかなぁと。 public final class SystemUtils { private static long offsetCurrentTimeMillis; private static long fixCurrentTimeMillis; private SystemUtils() {} /** * {…

dateDiff

2つの日付の間隔を取得する。 public static long dateDiff(Date d1, Date d2, int field) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(d1); c2.setTime(d2); switch (field) { case Calendar.YEAR: return …

convertDateFormat

おそらく今まで作ってきたシステムのほとんどで繰り返し書いてるメソッド。 効率化のためSimpleDateFormatのインスタンスをstatic変数にしてて失敗したこともあった。 このクラスってスレッドセーフじゃないんだよね・・・ public static String convertDate…