变更日期格式
我无法将日期格式更改为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
将实际格式化Date
为String
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 2013To 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