次のような生の日付フィールド (文字データとして保存) を含むデータベース フィールドがあります。
2008 年 9 月 26 日金曜日午後 8 時 30 分 (東部夏時間)
SimpleDateFormat を使用して、これを日付として簡単に解析できます
DateFormat dbFormatter = new SimpleDateFormat("EEEE, MMMM dd, yyyy hh:mm aa zzzz");
Date scheduledDate = dbFormatter.parse(rawDate);
私がやりたいのは、この文字列から TimeZone オブジェクトを抽出することです。このアプリケーションが実行される JVM のデフォルトの TimeZone は GMT であるため、上記の解析.getTimezoneOffset()
結果からは使用できません (デフォルトの TimeZone が返されるため)。Date
生の文字列をトークン化し、タイムゾーン文字列の開始位置を見つけることに加えて (形式が常に であることを知っているためEEEE, MMMM dd, yyyy hh:mm aa zzzz
)、DateFormat/SimpleDateFormat/Date/Calendar API を使用して TimeZone オブジェクトを抽出する方法があります-これは同じ TimeZone を持ちます私が分解した文字列としてDateFormat.parse()
?
Java API のDate
vsについて私を悩ませていることの 1 つは、それがすべての場所で置き換えられることになっていることです... しかし、彼らは決定しました。Calendar
Calendar
Date
Date
DateFormat