我的日期格式为"2016-06-03"
,我必须将其转换为以下内容:
"03 JUNE 2016"
。
我试过如下:
SimpleDateFormat formatter = new SimpleDateFormat("dd MMMM yyyy", Locale.ENGLISH);
String newFormat = formatter.format("2016-06-03");
但是,低于错误:
Invalid Arguments Exception
请帮我解决这个问题。感谢。
答案 0 :(得分:2)
尝试转换日期格式的常用功能
public static SimpleDateFormat targetFormat = new SimpleDateFormat();
public static SimpleDateFormat originalFormat = new SimpleDateFormat();
public static String formattedDate = "";
public static String getFormattedDate(String targetPattern,
String existingPattern, String existingValue) {
formattedDate = existingValue;
targetFormat.applyPattern(targetPattern);
DateFormatSymbols symbols = new DateFormatSymbols(Locale.getDefault());
symbols.setAmPmStrings(new String[] { "AM", "PM" });
targetFormat.setDateFormatSymbols(symbols);
originalFormat.applyPattern(existingPattern);
try {
formattedDate = targetFormat.format(originalFormat
.parse(existingValue));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return formattedDate;
}
并使用
String txtdate = getFormattedDate("dd MMMM yyyy","yyyy-MM-dd","2016-06-03");
答案 1 :(得分:1)
您可能希望使用DateFormat而不是SimpleDateFormat:
//Should print something like June 27, 2016
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.ENGLISH);
String format = df.format(yourDate);
答案 2 :(得分:1)
public String convert_date(String date)
{
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date d = null;
try
{
d = df.parse(date);
} catch (ParseException e)
{
e.printStackTrace();
}
df = new SimpleDateFormat("dd MMMM, yyyy");
return df.format(d);
}
**String convertedDate = convert_date("2016-06-25");**
答案 3 :(得分:0)
我已经从这里编辑了你的代码副本,现在工作正常
SimpleDateFormat formatter = new SimpleDateFormat("dd MMMM yyyy", Locale.ENGLISH);
String newFormat = null;
try {
newFormat = formatter.format(new SimpleDateFormat("yyyy-MM-dd").parse("2016-06-03"));
} catch (ParseException e) {
e.printStackTrace();
}
Log.d("Date", ": " + newFormat);
<强>输出强>
D/Date: : 03 June 2016
答案 4 :(得分:0)
如果从android中的日历中获取月份,通常会得到月份编号而不是名称。但是如果你想得到它的名字,你可以通过两种方式获得它。
获取全名 -
Calendar cal = Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("MMMM");
String month_name = month_date.format(cal.getTime());
获取月份的简称 -
Calendar cal = Calendar.getInstance();
SimpleDateFormat month_date = new SimpleDateFormat("MMM");
String month_name = month_date.format(cal.getTime());
有关SimpleDateFormat类的详细信息,请查看 - Android Docs。