型変換に心が折れそう(Date型→Int型)
とあるプログラムで、日付(Date型)を分単位、日付単位で数字にしなければならなかったけど、このDate→Intにする型変換はなかなかの難問。Int→DateならGoogle先生がすぐに答えてくれるけど、逆はかなりしんどい。。。
Date timeSet = new Date(); int second = 0; SimpleDateFormat format1 = new SimpleDateFormat("mm"); String mmFormat = format1.format( timeSet ); int minute = Integer.parseInt(mmFormat); SimpleDateFormat format2 = new SimpleDateFormat("HH"); String hhFormat = format2.format( timeSet ); int hour = Integer.parseInt(hhFormat); SimpleDateFormat format3 = new SimpleDateFormat("dd"); String ddFormat = format3.format( timeSet ); int day_of_month = Integer.parseInt(ddFormat); SimpleDateFormat format4 = new SimpleDateFormat("MM"); String MFormat = format4.format( timeSet ); int month = Integer.parseInt(MFormat); SimpleDateFormat format5 = new SimpleDateFormat("yyyy"); String yyyyFormat = format5.format( timeSet ); int year = Integer.parseInt(yyyyFormat);
どうでしょうか?これで
timeSet(Date型) :: Tue May 15 00:01:47 JST 2007 が
year : 2007, month : 5, minute : 1 など各変数に格納できているっぽいです。
結局、直接Date→Intできるメソッドとかわからなくて、データフォーマットを決めて、Date型をString型に変換し、parseIntでInt型にしています。
もっと頭の言いやり方があったら教えてください。Date型はおそろしや・・・。
(もっとも、マニュアルでDateクラスをみると「推奨されていません」連発なのが、今回の負のスパイラルの原因。
Calenderクラスに誘導するならもうちょっとわかりやすく誘導しようよ・・・)