变更日期格式

我无法将日期格式更改为dd/MMM/yyyy

这是我当前的实现:

final String OLD_FORMAT = "yyyy-MM-dd";

final String NEW_FORMAT = "yyyy-MMM-dd";

//Start Date

String str4=label.getText();

java.util.Date toDate = null;

//System.out.println(str4);

//End Date

String str5=lblNewLabel_3.getText();

java.util.Date newDateString = null;

SimpleDateFormat format = new SimpleDateFormat(OLD_FORMAT);

try {

toDate=format.parse(str4);

} catch (ParseException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

try {

newDateString=format.parse(str5);

format.applyLocalizedPattern(NEW_FORMAT);

} catch (ParseException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

输出:[WST 2013年5月28日星期二00:00:00]

有人可以帮我吗,谢谢!:D

我添加了此while语句,然后将日期格式再次设置为默认格式。

System.out.println("From " + toDate);

System.out.println("To " + newDateString );

Calendar cal2 = Calendar.getInstance();

cal2.setTime(toDate);

System.out.println(toDate);

while (cal2.getTime().before(newDateString)) {

cal2.add(Calendar.DATE, 1);

Object datelist=(cal2.getTime());

List<Object> wordList = Arrays.asList(datelist);

System.out.println(wordList);

}

回答:

java.util.Date没有格式。它仅是格林尼治标准时间1970年1月1日00:00:00以来的毫秒数

当您执行操作时,System.out.println(new Date())它只是提供Date对象的默认toString方法输出。

您需要使用DateFormat将实际格式化DateString

public class TestDate01 {

public static final String OLD_FORMAT = "yyyy-MM-dd";

public static final String NEW_FORMAT = "yyyy-MMM-dd";

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

try {

String oldValue = "2013-05-29";

Date date = new SimpleDateFormat(OLD_FORMAT).parse(oldValue);

String newValue = new SimpleDateFormat(NEW_FORMAT).format(date);

System.out.println("oldValue = " + oldValue + "; date = " + date + "; newValue = " + newValue);

} catch (ParseException exp) {

exp.printStackTrace();

}

}

}

哪个输出…

oldValue = 2013-05-29; date = Wed May 29 00:00:00 EST 2013; newValue = 2013-May-29

回答:

您犯了同样的错误。 Date是一个自历元以来的毫秒数的容器,它没有自己的格式,而是使用自己的格式。

try {

Date toDate = new Date();

String newDateString = "2013-05-31";

System.out.println("From " + toDate);

System.out.println("To " + newDateString);

Date endDate = new SimpleDateFormat(OLD_FORMAT).parse(newDateString);

System.out.println("endDate " + endDate);

Calendar cal2 = Calendar.getInstance();

cal2.setTime(toDate);

System.out.println(toDate);

SimpleDateFormat newFormat = new SimpleDateFormat(NEW_FORMAT);

while (cal2.getTime().before(endDate)) {

cal2.add(Calendar.DATE, 1);

Date date = (cal2.getTime());

System.out.println(date + "/" + newFormat.format(date));

}

} catch (Exception exp) {

exp.printStackTrace();

}

哪个输出…

From Wed May 29 15:56:48 EST 2013

To 2013-05-31

endDate Fri May 31 00:00:00 EST 2013

Wed May 29 15:56:48 EST 2013

Thu May 30 15:56:48 EST 2013/2013-May-30

Fri May 31 15:56:48 EST 2013/2013-May-31

while没有道理。

Object datelist=(cal2.getTime());

List<Object> wordList = Arrays.asList(datelist);

cal2.getTime()返回一个Date,然后尝试从中创建一个列表…虽然我可能遗漏了一些…

以上是 变更日期格式 的全部内容, 来源链接: utcz.com/qa/400089.html

回到顶部