将JSON日期值转换为“Day,Month”格式

时间:2017-12-12 07:07:40

标签: java android json date datetime

我有一个链接到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();

                }

4 个答案:

答案 0 :(得分:1)

尝试

// 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();
}

<强>输出

enter image description here

答案 1 :(得分:0)

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 "";
    }
}

答案 2 :(得分:0)

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 :(得分:0)

使用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];