如何把日期转换成不同的格式?
问题描述:
我从 api 服务器中获取一些数据,包含数据和数据格式2013-09-06T14:15:11.557
。
这是什么格式呢?如何把这个数据格式转换为2013 sept 06 2:15
我使用下面2中方法来转换日期格式
public static Date stringToDate(String dateString)
{
Date date = null;
DateFormat df = new SimpleDateFormat(Constants.DATE_FORMAT_WITHOUT_TIME);
try {
date = df.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
和
public static String FormatDate(String dateString)
{
String s="";
Date date = stringToDate(dateString);
s = date.getDate()+" "+monthname[date.getMonth()+1]+" "+(date.getYear()+1900);
return s;
}
这是我的数据格式常量public static final String DATE_FORMAT_WITHOUT_TIME = "yyyy-MM-dd";
,但是解析的不正确。
答
你可以试一下下面的代码:
String date="2013-09-06T14:15:11.557";
DateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Date d=df.parse(date);
df=new SimpleDateFormat("yyyy-MMM-dd hh:mm");
System.out.println(df.format(d));
输出:
2013-Sep-06 02:15
答
date = df.parse(dateString);
这有问题
答
你确信是sept,不是Sep,那样就简单多了。
下面是sept的代码。
String fromFormat = "yyyy-MM-dd'T'hh:mm:ss.S";
String toFormat = "yyyy '%s' dd h:m";
String monthFormat = "MMMM";
SimpleDateFormat sdf = new SimpleDateFormat(fromFormat);
Date d = sdf.parse("2013-09-06T14:15:11.557");
sdf = new SimpleDateFormat(toFormat);
String s = sdf.format(d);
String m = new SimpleDateFormat(monthFormat, Locale.ENGLISH).format(d);
s = String.format(s, m.substring(0, 4).toLowerCase());
System.out.println(s);