我在Sun Dec 06 11:15:00 IST 2015
中使用SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy")
时使用Locale.ENGLISH
时,无法使用SimpleDateFormat
来解析字符串日期Locale.ENGLISH
,但是
当应用程序语言更改为非英语(例如Marathi/Hindi
)时,无法解析。
我可以将其他字符串日期(如10 12 2018
减为dd MM yyyy
,但不能使用以上格式。
在Lollipop and kit-kat
设备上的问题。当我将Locale
更改为非英语时。
minSdkVersion 16和targetSdkVersion 27
1。尝试以下解决方案。
EEE MMM dd HH:mm:ss Z yyyy,EEE MMM dd HH:mm:ss z yyyy,DateFormat等
String tDueDate="Sun Dec 06 11:15:00 IST 2015";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
Date dt = sdf.parse(tDueDate);
sdf = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH);
return sdf.format(dt);
IST 2018年10月3日星期六00:00:00 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:java.text.ParseException:无法解析的日期:“ IST 2018年10月03日00:00:00(偏移20) ) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at java.text.DateFormat.parse(DateFormat.java:555) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at com.smartsms.util.EventsUtil.returnDateInDateFormat(EventsUtil.java:750) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at com.smartsms.fragment.EventsFragmentNew $ MyTask.onPostExecute(EventsFragmentNew.java:1397) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at com.smartsms.fragment.EventsFragmentNew $ MyTask.onPostExecute(EventsFragmentNew.java:1295) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at android.os.AsyncTask.finish(AsyncTask.java:632) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at android.os.AsyncTask.access $ 600(AsyncTask.java:177) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:645) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:位于android.os.Handler.dispatchMessage(Handler.java:102) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at android.os.Looper.loop(Looper.java:136) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:位于android.app.ActivityThread.main(ActivityThread.java:5111) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at java.lang.reflect.Method.invokeNative(本机方法) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at java.lang.reflect.Method.invoke(Method.java:515) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:806) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events W / System.err:at dalvik.system.NativeStart.main(本机方法) 12-12 13:16:33.733 17653-17653 / com.smartsms.organizer.events
活动区域设置: en_US
答案 0 :(得分:0)
尝试使用类似
的更改代码 SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.getDefault());
Date dt = sdf.parse(tDueDate);
sdf = new SimpleDateFormat("dd MMM yyyy", Locale.getDefault());
return sdf.format(dt);
答案 1 :(得分:0)
您可以尝试这样:
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
更改为:
SimpleDateFormat sdf1 = new SimpleDateFormat ("EEE MMM dd HH:mm:ss 'IST' yyyy", Locale.ENGLISH);
答案 2 :(得分:0)
String dateStr = "Sun Dec 06 11:15:00 IST 2015";
DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy");
Date date = (Date)formatter.parse(dateStr);
System.out.println(date);
答案 3 :(得分:0)
我一直在寻找答案,为什么它无法将字符串gnuplot
的其他日期格式(例如字符串日期Sun Dec 06 11:15:00 IST 2015 using SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy")
)与01 10 2018
的格式进行解析,但不能高于该值。所以
我尝试了这种替代方法来获取各自的日期格式。
希望这对某些人有帮助
值是日期对象
dd MM YYYY