2012-11-28 21 views
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 

这里我的时间是正确的,但日期是错误的。我预计28/11/2012.我无法追踪我做错了什么地方?

+0

亚洲时间不应该在未来的一天左右从纽约? – kabuto178

回答

4

问题出在您输入的格式:"mm/dd/yyyy hh:mma"。我相信你想这样做:"MM/dd/yyyy hh:mma"

+0

这也不起作用 – Ramprasad

+1

我不知道为什么有**添加..重点是,你已经使用小写“米”,其中涉及到分钟,而不是大写M与月有关 – iBecar

+0

修改“mm”到“MM”作品精细 – Ramprasad

相关问题