将 2014 年 12 月 9 日星期二 00:00:00 GMT+04:00 转换为 yyyy-MM-dd android
Convert Tue Dec 09 00:00:00 GMT+04:00 2014 to yyyy-MM-dd android
下面的代码产生 error Caused by: java.lang.NullPointerException
在 java.util.Calendar.setTime
。这是正确的转换方式吗
"Tue Dec 09 00:00:00 GMT+04:00 2014"
到 yyyy-MM-dd
android 使用 simpledateformat
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date = null;
try {
date = parseFormat.parse(dateString);
System.out.println("Cresult_pass: "+date.toString());
SimpleDateFormat cformat = new SimpleDateFormat("yyyy-MM-dd");
String result = cformat.format(date);
System.out.println("Cresult:result "+result);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
日志:
03-06 12:11:11.420: W/System.err(9478): java.text.ParseException: Unparseable date: "Tue Dec 09 00:00:00 GMT+04:00 2014" (at offset 0)
03-06 12:11:11.455: W/System.err(9478): at java.text.DateFormat.parse(DateFormat.java:555)
03-06 12:11:11.455: W/System.err(9478): at trail.kreol.view.PalmaresFragment.revertDate(FicheCoursePalmaresFragment.java:296)
03-06 12:11:11.455: W/System.err(9478): at trail.kreol.view.PalmaresFragment.filteredList(FicheCoursePalmaresFragment.java:230)
03-06 12:11:11.455: W/System.err(9478): at trail.kreol.view.PalmaresFragment.onCreateView(FicheCoursePalmaresFragment.java:137)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
03-06 12:11:11.455: W/System.err(9478): at android.view.View.measure(View.java:16831)
03-06 12:11:11.455: W/System.err(9478): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728)
03-06 12:11:11.455: W/System.err(9478): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:477)
03-06 12:11:11.455: W/System.err(9478): at android.view.View.measure(View.java:16831)
我暂时无法测试,但是你忘记了你的时区之后的时间。您将您的 SimpleDateFormat 设置如下:
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
并尝试解析日期:
Tue Dec 09 00:00:00 GMT+04:00 2014
所以我想,您只是忘记了时间。将 parseFormat 的格式字符串更改为:
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z HH:mm yyyy"); //put HH:mm into the format
因此,如果它没有解决问题,请播放一下,因为字符串可能与我的示例略有不同。但明确地说,您忘记了时区之后的时间。
另一种可能的解决方案,您必须在日期格式中使用 4 个大写字母 Z:
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZZ yyyy");
SimpleDateFormat
默认使用默认语言环境来解析工作日(或月份、时代、am/pm)。
使用
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
如果您想应用特定的语言环境。
下面的代码产生 error Caused by: java.lang.NullPointerException
在 java.util.Calendar.setTime
。这是正确的转换方式吗
"Tue Dec 09 00:00:00 GMT+04:00 2014"
到 yyyy-MM-dd
android 使用 simpledateformat
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
Date date = null;
try {
date = parseFormat.parse(dateString);
System.out.println("Cresult_pass: "+date.toString());
SimpleDateFormat cformat = new SimpleDateFormat("yyyy-MM-dd");
String result = cformat.format(date);
System.out.println("Cresult:result "+result);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
日志:
03-06 12:11:11.420: W/System.err(9478): java.text.ParseException: Unparseable date: "Tue Dec 09 00:00:00 GMT+04:00 2014" (at offset 0)
03-06 12:11:11.455: W/System.err(9478): at java.text.DateFormat.parse(DateFormat.java:555)
03-06 12:11:11.455: W/System.err(9478): at trail.kreol.view.PalmaresFragment.revertDate(FicheCoursePalmaresFragment.java:296)
03-06 12:11:11.455: W/System.err(9478): at trail.kreol.view.PalmaresFragment.filteredList(FicheCoursePalmaresFragment.java:230)
03-06 12:11:11.455: W/System.err(9478): at trail.kreol.view.PalmaresFragment.onCreateView(FicheCoursePalmaresFragment.java:137)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:486)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.view.ViewPager.populate(ViewPager.java:1073)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
03-06 12:11:11.455: W/System.err(9478): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
03-06 12:11:11.455: W/System.err(9478): at android.view.View.measure(View.java:16831)
03-06 12:11:11.455: W/System.err(9478): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:728)
03-06 12:11:11.455: W/System.err(9478): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:477)
03-06 12:11:11.455: W/System.err(9478): at android.view.View.measure(View.java:16831)
我暂时无法测试,但是你忘记了你的时区之后的时间。您将您的 SimpleDateFormat 设置如下:
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
并尝试解析日期:
Tue Dec 09 00:00:00 GMT+04:00 2014
所以我想,您只是忘记了时间。将 parseFormat 的格式字符串更改为:
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z HH:mm yyyy"); //put HH:mm into the format
因此,如果它没有解决问题,请播放一下,因为字符串可能与我的示例略有不同。但明确地说,您忘记了时区之后的时间。 另一种可能的解决方案,您必须在日期格式中使用 4 个大写字母 Z:
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZZ yyyy");
SimpleDateFormat
默认使用默认语言环境来解析工作日(或月份、时代、am/pm)。
使用
SimpleDateFormat parseFormat =
new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
如果您想应用特定的语言环境。