我有以下内容:
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,然后将它们读入日期吗?谢谢。
答案 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”。请试一试