MM/dd/yyyy
解析している形式の日付文字列がありますSimpleDateFormat
ここで、以下のコード用であるstartDateString
と言います。11/26/2012
タイムゾーンをAmerica/New_Yorkに設定しました
SimpleDateFormat df=new SimpleDateFormat("MM/dd/yyyy");
Date st = df.parse(startDateString);
Calendar startDate = Calendar.getInstance(TimeZone.getTimeZone("America/New_York"));
System.out.println("BEFORE : Start Date :"+startDate.getTime());
startDate.setTime(st);
System.out.println("AFTER : Start Date :"+startDate.getTime());
DateTimeZone timezone = DateTimeZone.forID("America/New_York");
DateTime actualStartDate = new DateTime(startDate,timezone);
System.out.println("JODA DATE TIME "+ actualStartDate);
上記のコードスニペットの概要:
BEFORE : Start Date :Tue Nov 27 12:26:51 IST 2012
AFTER : Start Date :Mon Nov 26 00:00:00 IST 2012 //ok it sets date to 26th
//with all time parameters as 0.
JODA DATE TIME 2012-11-25T13:30:00.000-05:00 // here the date and
// time parameter are changed
私actualStartDate
がこのように作成するときの私の問題は何ですか:
DateTime actualStartDate = new DateTime(startDate,timezone);
日付が25に変更され、時刻が13:00:00
に変更されます。これは、インドと米国のタイムゾーンゾーンの違いによるものだと思います(ISTインド時間から合計-10:30)
私が欲しいのはJODA DATE TIME 2012-11-26T00:00:00.000-05:00
startDate
カレンダーインスタンス内の時間のパラメータを手動で設定します0
か?