将Date类型数组中的Format转换为不同的Date格式?

时间:2013-09-23 05:41:06

标签: java date format

我有以下内容:

String[] string_dates = new String[10]
// read in strings formatted via fmt1 dd-MMM-yy)

Date[] date_dates = new Date[10];
for (int i = 0; i < 9; i++){
    date_dates[i] = fmt1.parse(string_dates[i]);

将date_dates []中的日期格式化为格式化dd-MM-yyyy的最有效方法是什么?我应该首先将strings_dates []中的字符串转换为格式化dd-MM-yyyy,然后将它们读入日期吗?谢谢。

2 个答案:

答案 0 :(得分:2)

Date表示自Unix纪元以来的毫秒数。它没有自己格式的概念(除了由toString创建的,不应该担心)...

将日期的String表示转换为Date后,您应该使用适当的格式化程序以您希望的格式格式化该日期...

String[] stringDates = {
    "01-MAR-2013",
    "02-MAR-2013",
    "03-MAR-2013",
    "04-MAR-2013",
    "05-MAR-2013",
    "06-MAR-2013",
    "07-MAR-2013",
    "08-MAR-2013",
    "09-MAR-2013",
    "10-MAR-2013"};

SimpleDateFormat inFormat = new SimpleDateFormat("dd-MMM-yyyy");
Date[] dates = new Date[stringDates.length];
for (int i = 0; i < stringDates.length; i++) {
    try {
        dates[i] = inFormat.parse(stringDates[i]);
    } catch (ParseException ex) {
        ex.printStackTrace();
    }
}

SimpleDateFormat outFormat = new SimpleDateFormat("dd-MM-yyyy");
for (Date date : dates) {
    System.out.println("[" + date + "] - [" + outFormat.format(date) + "]");
}   

哪个产生......

[Fri Mar 01 00:00:00 EST 2013] - [01-03-2013]
[Sat Mar 02 00:00:00 EST 2013] - [02-03-2013]
[Sun Mar 03 00:00:00 EST 2013] - [03-03-2013]
[Mon Mar 04 00:00:00 EST 2013] - [04-03-2013]
[Tue Mar 05 00:00:00 EST 2013] - [05-03-2013]
[Wed Mar 06 00:00:00 EST 2013] - [06-03-2013]
[Thu Mar 07 00:00:00 EST 2013] - [07-03-2013]
[Fri Mar 08 00:00:00 EST 2013] - [08-03-2013]
[Sat Mar 09 00:00:00 EST 2013] - [09-03-2013]
[Sun Mar 10 00:00:00 EST 2013] - [10-03-2013]

您应该避免保存格式化Date的诱惑,而只需保留Date对象并根据需要对其进行格式化。

答案 1 :(得分:1)

您可以使用java中的以下SimpledateFormat将字符串格式化为日期类型。以下是示例

    SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
String dateInString = "7-Jun-2013";

  try {

    Date date = formatter.parse(dateInString);
    System.out.println(date);
    System.out.println(formatter.format(date));

} catch (ParseException e) {
    e.printStackTrace();
}

注意 有关完整的日期和时间模式,请参阅此java.text.SimpleDateFormat JavaDoc。

在您的情况下,请查看这些资源click here

你可以给“dd-MM-yyy”。请试一试