0

ニューヨークのタイムゾーン時間を「アジア/コルカタ」の日付と時刻に変換する方法は?

私の入力文字列:

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 日を期待しています。どこを間違えたのか追跡できませんか?

4

2 に答える 2

4

問題は入力した形式です: "mm/dd/yyyy hh:mma"。私はあなたがこれをしたかったと信じています:"MM/dd/yyyy hh:mma"

于 2012-11-28T15:09:49.190 に答える