0

在我的 android 应用程序中,我从 web 服务中获得了一个字符串,如下所示 -

 2012-10-17 22:54:00          or        2012-10-17 08:48:00

我想将此字符串转换为以下字符串-

2012-10-17 10:54:00 PM        or        2012-10-17 08:48:00 AM

如何在android中做到这一点。我已经完成了以下操作,但无法得到这样的结果。像 gethours(),getminutes() 这样的日期类方法也被贬低了。如何做到这一点?

我做了什么-

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
        try {
            convertedDate = dateFormat.parse(publishtime);
            dateFormat.setLenient(true);

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
        Log.i("", "CREATE Date"+convertedDate);//the resut of log is - CREATE DateMon Jan 16 00:10:00 GMT+05:30 2012


        Log.i("", "HOURS:"+hour);
        if(hour>=12)
            publishtime=publishtime+" PM";
        else
            publishtime=publishtime+" AM";
4

3 回答 3

0
SimpleDateFormat dfTime_a= new SimpleDateFormat("yyyy-MM-dd h:mm:ss a");
SimpleDateFormat dfTime= new SimpleDateFormat("yyyy-MM-dd h:mm:ss");

public String formatTime(String str)
{
    java.util.Date d = null;

    try {
        d = dfTime.parse(str);
    } catch (java.text.ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    str = dfTime_a.format(d);
    return str;
}

检查

formatTime("2012-10-17 22:54:00") 给出 op 为 2012-10-17 10:54:00 pm

于 2012-10-17T13:10:07.860 回答
0

首先,您没有为解析日期设置正确的模式,它应该是

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

要获得转换后的字符串,请使用

SimpleDateFormat convertedFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
convertedFormat.format(convertedDate);
于 2012-10-17T13:18:04.677 回答
0

试试这个

    String publishTime="2012-10-17 22:54:00";
    SimpleDateFormat inputTime= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    SimpleDateFormat outputTime= new SimpleDateFormat("yyyy-MM-dd KK:mm:ss a");
    Date date=inputTime.parse(publishTime);
    publishTime = outputTime.format(d);
    Log.i("", "CREATE Time"+publishTime);
于 2012-10-17T13:18:37.263 回答