【问题标题】:Date Parser parsing every month to January日期解析器每月解析到一月
【发布时间】:2016-11-28 13:14:20
【问题描述】:

我编写了以下代码将日期解析为这种格式25 July, 2016。这就是我为实现这一目标所做的。

Date _date;
String datePattern = "dd MMMM, yyyy";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD");
SimpleDateFormat format = new SimpleDateFormat(datePattern);    
String parseDate; 
            try {
                _date= formatter.parse(date);  //date Value is coming from serverin this format = 2016-07-21T16:01:57
                parseDate  = format.format(_date);
            } catch (ParseException e) {
                e.printStackTrace();
            }

问题在于,它将所有月份转换为January 它将这个日期2016-07-21T16:01:57 转换为 21 January, 2016.

请指导我在这里做错了什么。

【问题讨论】:

    标签: java android datetime simpledateformat


    【解决方案1】:

    试试这个:

    DateFormat userDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); //time format from server
    DateFormat dateFormatNeeded = new SimpleDateFormat("yyyy-MM-dd"); // time format needed
    Date newDate = null;
    try {
        newDate = userDateFormat.parse(date); // this parses server date format
    } catch (ParseException e) {
        e.printStackTrace();
    }
    //this converts to required date format
    String convertedDate = dateFormatNeeded.format(newDate);
    return convertedDate;
    

    【讨论】:

    • yyyy-MM-DD 错误,DD 是一年中的某一天。它应该是 yyyy-MM-dd
    【解决方案2】:

    在下面使用第一个格式化程序

     DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    

    【讨论】:

      【解决方案3】:

      您必须将解析器模式与服务器发送的模式相匹配:

      DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); // this is fine now.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多