我最近开始学习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
答案 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 ""
}
}