我正在尝试使用以下格式解析日期字符串:“ 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 个答案:
没有答案