【问题标题】:Converting JSON date value into format "Day, Month" [duplicate]将 JSON 日期值转换为“日、月”格式 [重复]
【发布时间】:2018-05-25 19:24:16
【问题描述】:

我有一个链接到 Web 服务的 SQL 数据库。 Web 服务将使用 JAVA 将 JSON 数据发送到我的 android 应用程序。

日期在 SQL 中存储为 DATETIME,并在 Web 服务中显示为“11/14/2017 12:00:00 AM”。在 Android 应用程序上收到的日期的 JSON 数据是“2017-11-14T00:00:00”。

如何使用 Java 将其格式化为显示“11 月 14 日”?

以下代码显示了我如何检索 json 数据:

    JsonArrayRequest jsonRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            for (int j = 0; j < response.length(); j++) {
                try {
                    JSONObject temp=response.getJSONObject(j);
                    String date = temp.getString("Date")
                    Log.v("Date", date);

                catch (JSONException e) {
                    e.printStackTrace();

                }

【问题讨论】:

  • 到目前为止您尝试过什么?用于解析日期时间字符串
  • @LakshayJuneja 用显示我如何检索 json 数据的代码进行了编辑
  • @KimSuYu 我问的是你的日期时间解析而不是你如何得到回应。

标签: java android json date datetime


【解决方案1】:

使用SimpleDateFormat 转换为所需格式,例如:

SimpleDateFormat Dateformat = new SimpleDateFormat("dd-MMMM-yyyy hh:mm a", Locale.US);
Date date =   Dateformat.parse(YourDateString);
String StringDate = Dateformat .format(date);
String MyNewDate= StringDate.split(" ")[0]+ StringDate.split(" ")[1];

【讨论】:

    【解决方案2】:

    Calendar实例返回年月日,下面的代码将返回年月日

     JsonArrayRequest jsonRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
                @Override
                public void onResponse(JSONArray response) {
                    for (int j = 0; j < response.length(); j++) {
                        try {
                            JSONObject temp=response.getJSONObject(j);
                            String date = temp.getString("Date")
                            Log.v("Date", date);
                            SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
                            Date parse = sdf.parse(date);//date variable your json value
                            Calendar c = Calendar.getInstance();
                            c.setTime(parse);
                            System.out.println(c.get(Calendar.MONTH) + c.get(Calendar.DATE));
    
                        catch (JSONException e) {
                            e.printStackTrace();
    
                        }
    

    编码愉快!!

    【讨论】:

      【解决方案3】:

      使用 java.text.SimpleDateFormat 作为this 教程。

      public static String convertDate(String date) {
          SimpleDateFormat fromFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
          try {
              Date dt = fromFormat.parse(date);
              return new SimpleDateFormat("dd MMMM").format(dt);
          } catch (ParseException e) {
              return "";
          }
      }
      

      【讨论】:

        【解决方案4】:

        试试

        // format date
        String dt = "2017-11-14T00:00:00";
        // old SimpleDateFormat 
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss", Locale.ENGLISH);
        // new SimpleDateFormat 
        SimpleDateFormat sdf2 = new SimpleDateFormat("dd MMMM", Locale.ENGLISH);
        Date date = null;
            try {
            date = sdf1.parse(dt);
            String newDate = sdf2.format(date);
            System.out.println(newDate);
            Log.e("Date", newDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        

        输出

        【讨论】:

        猜你喜欢
        • 2015-04-29
        • 1970-01-01
        • 1970-01-01
        • 2021-04-12
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-21
        相关资源
        最近更新 更多