使用SimpleDateFormat没有得到适当的时间

时间:2013-10-27 18:18:42

标签: android simpledateformat utc

我正在尝试将日期从UTC格式的JSON转换为我的本地时间。

我的时间为10/27/2013 5:58:02 PM,我需要转换为当地时间+5:30

但相反,我得到了10/27/2013 6:28:02

我的代码是

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("M/d/yyyy H:mm:ss a");
    SimpleDateFormat longDateFormat=new SimpleDateFormat("M/d/yyyy H:mm:ss");
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

        String formattedDate="";
        try
        {
            Date myDate = simpleDateFormat.parse(mDateAndTime);

            formattedDate = longDateFormat.format(myDate);
        } catch (ParseException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

1 个答案:

答案 0 :(得分:1)

我认为这会对你有所帮助:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("M/d/yyyy hh:mm:ss a");
SimpleDateFormat longDateFormat = new SimpleDateFormat("M/d/yyyy HH:mm:ss z");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
try
{
    Date myDate = simpleDateFormat.parse("10/25/2013 02:00:00 PM");
    String now = simpleDateFormat.format(myDate.getTime());
    System.out.println("12 hour format : " + now);
    String time24 = longDateFormat.format(simpleDateFormat.parse(now));
    System.out.println("24 hour format : " + time24);
} catch (ParseException e)
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}