在Android TextView中将MySQL DATETIME转换为特定格式

时间:2017-06-16 01:42:09

标签: java php android json

我最近开始学习java以及如何构建Android应用程序。我目前正在使用一个应用程序,该应用程序使用CustomListAdapter将通过json解析的MySQL数据显示为ListView。我遇到的问题是如何更改TextView从我的数据库中显示DATETIME的方式。就像现在一样,它显示了完整的YYYY-MM-DD HH:MM:SS格式,而我实际上只是想显示HH:MM A。我已经看到其他人提出类似问题并得到使用SimpleDateFormat类的回复,但是,我不了解如何适应我的代码。 due_time是我的数据库中正在解析的列,我在我的布局中也命名了TextView id。

这是其他人建议使用的片段:

SimpleDateFormat df1 = new SimpleDateFormat("YYYY-MM-DD");
SimpleDateFormat df2 = new SimpleDateFormat("DD-MM-YYYY");
try{
    Date d = df1.parse(DateString);
    System.out.println("new date format " + df2.format(d));
}catch(Exception e){
   e.printStackTrace();
}

如果这样可行,我假设我会在其中插入due_time,然后将代码段插入我getView的{​​{1}}方法,如下所示。我是在正确的轨道上吗?

CustomListAdapter

1 个答案:

答案 0 :(得分:3)

嗨,你可以试试这个,

public static String convertFormat(String inputDate) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

    Date date = null;
    try {
        date = simpleDateFormat.parse(inputDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }


    if (date == null) {
        return "";
    }

    SimpleDateFormat convetDateFormat = new SimpleDateFormat("hh:mm a");

    return convetDateFormat.format(date);
}

你可以从你的getView方法中调用这个方法,并在textView中设置

due_time.setText(convertFormat(o.getDueTime()));

Kotlin版本:

fun getDisplayDateTime(dateTimePhp: String): String {
    try {
        val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd hh:mm:ss",     Locale.getDefault())
        val date = simpleDateFormat.parse(dateTimePhp)
        val convetDateFormat = SimpleDateFormat("dd-MM-yyyy hh:mm a", Locale.getDefault())
        return convetDateFormat.format(date)
    } catch (e: Exception) {
        return ""
    }
}