【发布时间】:2017-04-14 08:30:59
【问题描述】:
我正在尝试通过解析 json 字符串将字符串转换为 Asynctask 中的日期。我提到了这个链接: How to convert "Mon Jun 18 00:00:00 IST 2012" to 18/06/2012?
//String dateStr = "Mon Jun 18 00:00:00 IST 2012";
changedDate = jsonObjectMain.getString("date");
DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
Date date = (Date)formatter.parse(changedDate);
System.out.println(date);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
String formatedDate = cal.get(Calendar.DATE) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.YEAR);
System.out.println("formatedDate : " + formatedDate);
当我在 android studio 中运行此代码时,出现以下异常:
04-14 12:35:53.363 22963-22963/com.trial W/System.err: java.text.ParseException:无法解析的日期:“星期一 6 月 18 日 00:00:00 IST 2012"(偏移量 20)04-14 12:35:53.367 22963-22963/com.trial W/System.err:在 java.text.DateFormat.parse(DateFormat.java:579) 04-14 12:35:53.367 22963-22963/com.trial W/System.err: at com.trial.Activity.StartActivity.onClick(StartActivity.java:124) 04-14 12:35:53.367 22963-22963/com.trial W/System.err: at android.view.View.performClick(View.java:5210) 04-14 12:35:53.367 22963-22963/com.trial W/System.err:在 android.view.View$PerformClick.run(View.java:21183) 04-14 12:35:53.367 22963-22963/com.trial W/System.err:在 android.os.Handler.handleCallback(Handler.java:739) 04-14 12:35:53.367 22963-22963/com.trial W/System.err:在 android.os.Handler.dispatchMessage(Handler.java:95) 04-14 12:35:53.367 22963-22963/com.trial W/System.err:在 android.os.Looper.loop(Looper.java:148) 04-14 12:35:53.367 22963-22963/com.trial W/System.err:在 android.app.ActivityThread.main(ActivityThread.java:5438) 04-14 12:35:53.367 22963-22963/com.trial W/System.err: at java.lang.reflect.Method.invoke(Native Method) 04-14 12:35:53.367 22963-22963/com.trialW/System.err:在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:762) 04-14 12:35:53.367 22963-22963/com.trial W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:652)
但是当我通过创建简单的程序在 eclipse 中运行相同的代码时,它运行得非常好。
我想知道,我不知道,为什么会发生这种情况。 所以,我在另一个 Activity 中检查了按钮单击时的相同代码,但 不起作用。
谢谢。任何帮助将不胜感激。
【问题讨论】:
-
转换 IST 字符串非常棘手。我相信你得到的错误是因为'IST'。我可以知道时区是固定在 IST 上还是动态的?
-
我从 json 中获取字符串,格式为“Mon Jun 18 00:00:00 IST 2012”。所以我不确定时区是否修复。
-
如果可以,请远离三个字母的时区缩写。 IST 可能表示印度标准时间、爱尔兰标准时间或以色列标准时间。最好使用
Asia/Kolkata、Europe/Dublin或Asia/Tel_Aviv。 -
好的,下次会处理的。谢谢。
-
@KuldeepKulkarni 投反对票可能是因为您发帖时没有费心搜索已发布的关于该主题的数百(数千?)个问题和答案中的任何一个。
标签: java android date simpledateformat