如何将日期格式转换为
2013-01-10 09:49:19
到
1月10日。
这两个值都是字符串类型。
答案 0 :(得分:5)
我添加了代码来计算出正确的后缀,因为这不是标准JDK的一部分。公平地说,这可能是这个问题的唯一一点,不仅仅是SimpleDateFormat#format()
电话。
static String[] suffixes =
// 0 1 2 3 4 5 6 7 8 9
{ "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th",
// 10 11 12 13 14 15 16 17 18 19
"th", "th", "th", "th", "th", "th", "th", "th", "th", "th",
// 20 21 22 23 24 25 26 27 28 29
"th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th",
// 30 31
"th", "st" };
public static void main(String args[]) throws ParseException {
String string = "2013-01-10 09:49:19";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).parse(string);
SimpleDateFormat dayFormat = new SimpleDateFormat("dd");
SimpleDateFormat monthFormat = new SimpleDateFormat("MMM");
String dayStr =
dayFormat.format(date)
+ suffixes[Integer.parseInt(dayFormat.format(date))]
+ " " + monthFormat.format(date) + ".";
System.out.println(dayStr);
}
答案 1 :(得分:1)
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2013-01-10 09:49:19");
String format = new SimpleDateFormat("dd'th' MMM").format(date);
System.out.println(format);
输出是:
10th Jan
答案 2 :(得分:0)
使用DateFormat类
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.ENGLISH);
System.out.println(df.parse(myDateInString));
我认为你应该围绕try catch中的语句包含可能的异常。