SimpleDateFormat 弄错了一天
SimpleDateFormat getting wrong day
好的,我的后端发送给我这个日期:2015-10-23 17:28:35.932620000
在我的 android 应用程序中,我有一个包含所有信息(包括此日期)的对象。
这是 setter:
public void setCreatedDate(String pDateAsString)
{
/** Intenta convertir la fecha cargada */
try {
/** Obtiene la hora que viene de parametro como un Date */
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", IConstants.LOCALE);
mFineCreatedDate = dateFormat.parse(pDateAsString);
} catch (java.text.ParseException e) {
e.printStackTrace();
}
}
这是getter:
public String getCreatedDateAsString()
{
DateFormat dateFormat = new SimpleDateFormat("EEEE FF/MMM/yyyy hh:mm aa",Locale.getDefault());
String dateString = dateFormat.format(mFineCreatedDate);
return dateString.substring(0, 1).toUpperCase(Locale.getDefault()) + dateString.substring(1).toLowerCase(Locale.getDefault());
}
其格式设置为以更易读的方式显示给用户。然而,这正在发生:
正在显示 2015-05-04 08:51:32 这样的日期 Monday 01/may/2015 08:51am
如您所见,日期不对,我真的不知道为什么。至于我(基于 SimpleDateFormat 的文档)一切都很好。
您应该将 "FF"(月中的星期几)更改为 "dd"(月中的日期)。有关详细信息,请参阅此 link.
尝试像这样解析您的日期,它正在运行。
String dtStart = "11/08/2013 08:48:10";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
try {
date = format.parse(dtStart);
System.out.println("Date ->" + date);
} catch (Exception e) {
e.printStackTrace();
}
好的,我的后端发送给我这个日期:2015-10-23 17:28:35.932620000
在我的 android 应用程序中,我有一个包含所有信息(包括此日期)的对象。 这是 setter:
public void setCreatedDate(String pDateAsString)
{
/** Intenta convertir la fecha cargada */
try {
/** Obtiene la hora que viene de parametro como un Date */
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", IConstants.LOCALE);
mFineCreatedDate = dateFormat.parse(pDateAsString);
} catch (java.text.ParseException e) {
e.printStackTrace();
}
}
这是getter:
public String getCreatedDateAsString()
{
DateFormat dateFormat = new SimpleDateFormat("EEEE FF/MMM/yyyy hh:mm aa",Locale.getDefault());
String dateString = dateFormat.format(mFineCreatedDate);
return dateString.substring(0, 1).toUpperCase(Locale.getDefault()) + dateString.substring(1).toLowerCase(Locale.getDefault());
}
其格式设置为以更易读的方式显示给用户。然而,这正在发生:
正在显示 2015-05-04 08:51:32 这样的日期 Monday 01/may/2015 08:51am
如您所见,日期不对,我真的不知道为什么。至于我(基于 SimpleDateFormat 的文档)一切都很好。
您应该将 "FF"(月中的星期几)更改为 "dd"(月中的日期)。有关详细信息,请参阅此 link.
尝试像这样解析您的日期,它正在运行。
String dtStart = "11/08/2013 08:48:10";
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
try {
date = format.parse(dtStart);
System.out.println("Date ->" + date);
} catch (Exception e) {
e.printStackTrace();
}