导致:java.lang.IllegalArgumentException:错误的类:类java.lang.String
我想格式化日期,我从我的数据库表中检索,我想格式从“2015 02 11 12 00”到“ 2月2日“,但它格式化时会出错。有没有其他的方式来格式化这些日期?导致:java.lang.IllegalArgumentException:错误的类:类java.lang.String
继代码:
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = jParser.makeHttpRequest(url_all_events, "GET", params);
// Check your log cat for JSON reponse
Log.d("All events: ", json.toString());
try {
// Checking for SUCCESS TAG
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// events found
// Getting Array of events
events = json.getJSONArray(TAG_EVENTS);
// looping through All events
for (int i = 0; i < events.length(); i++) {
JSONObject c = events.getJSONObject(i);
// Storing each json item in variable
String id = c.getString(TAG_PID);
String eventname = c.getString(TAG_EVENTNAME);
String eventstart = c.getString(TAG_EVENTSTART);
String eventstartconvert = formatdate.format(eventstart); //this line gives an error.
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_PID, id);
map.put(TAG_EVENTNAME, eventname);
map.put(TAG_EVENTSTART,eventstartconvert);
// adding HashList to ArrayList
eventsList.add(map);
}
}
这里是我的logcat:
02-11 09:14:40.997 25966-26198/com.example.jithea.testlogin E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #2
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:838)
Caused by: java.lang.IllegalArgumentException: Bad class: class java.lang.String
at java.text.DateFormat.format(DateFormat.java:359)
at java.text.Format.format(Format.java:93)
at com.example.jithea.testlogin.EventsActivity$LoadAllevents.doInBackground(EventsActivity.java:137)
at com.example.jithea.testlogin.EventsActivity$LoadAllevents.doInBackground(EventsActivity.java:91)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
在android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:230) 在java.util中。 concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:573) 在java.lang.Thread.run(Thread.java:838)
你可能在你这个格式,日期格式化.......
DateFormat inputFormatter1 = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = inputFormatter1.parse("2015-2-22");
DateFormat outputFormatter1 = new SimpleDateFormat("dd-MMM-yyyy");
String output1 = outputFormatter1.format(date1); //
//如果以这种格式输入是2015年2月22日比出认沽将是2月22日 - 2015年
您可以根据您的设置格式要求.... like(“yyyy-MM-dd hh:mm:ss”) – 2015-02-11 02:57:55
它的工作原理!谢谢.. – 2015-02-11 03:36:42
DateFormat.format
预计Number
或Date
但你传递一个String
。你可能想parse the string,但格式化它只会产生你将解析的相同的字符串。
'错误:(138,31)错误:找不到格式合适的方法(SimpleDateFormat,String)'按照我声明的方式'SimpleDateFormat formatdate = new SimpleDateFormat(“Mmm dd”);' – 2015-02-11 01:33:37
您应该格式的输入,然后传递到输出格式
try {
String formattedString = new SimpleDateFormat("dd MMM yyyy").format(new SimpleDateFormat("yyyy-MM-dd").parse("2014-07-31"));
} catch (ParseException e) {
e.printStackTrace();
}
请张贴异常的完整堆栈跟踪,使我们知道要启动的线看。 – emerssso 2015-02-11 01:25:28