Java将日期从一种格式转换为另一种格式

时间:2014-03-07 12:35:50

标签: java type-conversion

如何将日期格式转换为

  

2013-01-10 09:49:19

  

1月10日。

这两个值都是字符串类型。

3 个答案:

答案 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中的语句包含可能的异常。