4Manuals

  • PDF Cloud HOME

Java SimpleDateFormat解析引发异常(MMM d,yyyy HH:mm:ss aaa) Download

    春季启动-Couchbase AbstractCouchbaseConfiguration-如何避免覆盖不必要的方法 我不知道(未解决的编译问题:) 加载数据并推送到未显示的RecyclerView中 调用Model类的函数时出现java.lang.NullPointerException 字符串数组在for循环中初始化时忽略索引0 Spring MVC @ModelAttribute未填充AJAX发布请求 需要建议在Java中使用哪个数据库/存储来存储RaftLogs(实现Raft Consensus Algorithm) Flutter:Java使用或覆盖已弃用的API @ EnableOAuth2Sso和@EnableResourceServer(同一应用程序中的客户端和资源行为) 中断可运行线程的问题

我正在尝试使用以下格式解析日期字符串:“ MMM d,yyyy HH:mm:ss aaa”。由于某些原因,我不知道在解析此错误时:

  

“ exorg.json.JSONException:预期在30 [字符31第1行]处为','或'}';

为什么JSON错误?

我发誓错误是因为我从webService中获取了所有数据,该webService返回了JSON。

但是测试,如果我在解析中手动输入相同的日期,则会出现相同的错误。

*我无法从webService更改JSON的结构或格式,因为它不是我自己的。

这是我的代码:

public class MainActivity extends AppCompatActivity {

EditText mEditText;
TextView mTextView;
String api="http://api.openweathermap.org/data/2.5/weather? 
q=kolkata&appid=e8cd0e5f8d3ba1e87d108da87d9c0a94";
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    DownloadTask task=new DownloadTask();
    task.execute(api);
}
public class DownloadTask extends AsyncTask<String,Void,String>
{
    @Override
    protected String doInBackground(String... urls) {
        String result="";
        URL url;
        HttpURLConnection urlConnection=null;
        try {
            url=new URL(urls[0]);
            urlConnection=(HttpURLConnection)url.openConnection();
            InputStream in=urlConnection.getInputStream();
            InputStreamReader reader=new InputStreamReader(in);
            int data=reader.read();
            while (data!=-1)
            {
                char current=(char)data;
                result+=current;
                data=reader.read();
            }

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }
    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(result);
        Log.i("Result",result);
      }
   }

}

这是将字符串转换为日期的尝试:

import java.text.SimpleDateFormat;
import java.util.Date;

SimpleDateFormat formatter1 = new SimpleDateFormat("MMM d, yyyy HH:mm:ss aaa");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String sDate1="Apr 17, 2020 12:00:00 AM";
Date date1=new SimpleDateFormat("dd/MM/yyyy").parse(sDate1);
System.out.println(sDate1+"\t"+date1);

0 个答案:

没有答案



Similar searches
    无法将脚本排入WordPress 如果SELECT SQL Server值为null,则查询需要5分钟C# 在Rails中启用查询缓存? Typescript-基类继承 如何为失败的测试向ExUnit的输出添加信息