ニューヨークのタイムゾーン時間を「アジア/コルカタ」の日付と時刻に変換する方法は?
私の入力文字列:
11/28/2012 8:59am
私のコード:
String dtStart = "11/28/2012 8:59am";
SimpleDateFormat format = new SimpleDateFormat("mm/dd/yyyy hh:mma");
format.setTimeZone(TimeZone.getTimeZone("America/New_York"));
try {
Date date = format.parse(dtStart);
Log.i("clock", date.toString());
System.out.println(date);
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(date.getTime());
cal.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
int chour = cal.get(Calendar.HOUR_OF_DAY);
int cminute = cal.get(Calendar.MINUTE);
int dd = cal.get(Calendar.DAY_OF_MONTH);
int mm =cal.get(Calendar.MONTH);
int yy =cal.get(Calendar.YEAR);
String mode="AM";
if(chour>12)
{
chour=chour-12;
mode="PM";
}
String mytime=Integer.toString(chour)+":"+Integer.toString(cminute)+" "+mode;
String mydate=Integer.toString(dd)+"/"+Integer.toString(mm)+"/"+Integer.toString(yy);
Log.i("clock", mytime);
Log.i("clock", mydate);
} catch (ParseException e) {
e.printStackTrace();
} catch (java.text.ParseException e) {
e.printStackTrace();
}
私の出力ログ:
Sat Jan 28 19:29:00 GMT+05:30 2012
7:29 PM
28/0/2012
時間は正しいのですが、日付が間違っています。2012 年 11 月 28 日を期待しています。どこを間違えたのか追跡できませんか?