我在目前正在建立的项目中发现了一些困难。为了帮助您理解,我有以下屏幕截图。

java - 从 ListView 中将DateFormat转换为小时和分钟-LMLPHP

我通过网络服务检索联赛的名称和日期。日期代表联赛开始的时间。因此,联赛A在第二天11:00:50开始。

这就是我检索这些对象的方式。

try {
                        if (response.getString("status").equals("success")) {
                            //getTeam(username, password);

                      JSONArray jsonArray = response.getJSONArray("leagues");

                      for (int i = 0; i < jsonArray.length(); i++) {
                                showOpenLeagues = new   ShowOpenLeagues();

 JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                                showOpenLeagues.setLeagueName(jsonObject1.getString("league_name"));
                                showOpenLeagues.setLeagueStart(jsonObject1.getString("league_start"));
                                showOpenLeagues.setLeagueId(jsonObject1.getString("ID"));
                                showOpenLeaguesList.add(showOpenLeagues);



                                listView.setAdapter(openLeaguesAdapter);


                            }

                        }

                    } catch (JSONException e) {
                        Log.e("TAG", e.toString());
                    }


只不过是解析json数组而已。

现在这是我的问题。我想找到一种获取所有这些日期格式并将其转换为小时和分钟而无需单击任何行的方式!我做了类似的事情,但是我在单个textview中显示了计时器(使用CountDownTimer类及其覆盖的方法),这很容易。

谢谢。

最佳答案

您可以使用SimpleDateFormat格式化日期。

当您获取格式的日期时

yyyy-MM-dd HH:mm:ss


你想要它格式化

HH:mm


这样做:

SimpleDateFormat df_input = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", java.util.Locale.getDefault());
SimpleDateFormat df_output = new SimpleDateFormat("HH:mm", java.util.Locale.getDefault());

try {
  Date parsed = df_input.parse(inputDate);
  String  outputDate = df_output.format(parsed);
} catch (Exception e) {
}


现在,您有一个字符串=> outputDate,该字符串仅包含小时和分钟。
可能有许多组合,即

"yyyy-MM-dd",
"yyyy-MM-dd HH:mm",
"yyyy-MM-dd HH:mmZ",
"yyyy-MM-dd HH:mm:ss.SSSZ",
"yyyy-MM-dd'T'HH:mm:ss.SSSZ",

10-07 20:27