gpt4 book ai didi

java - 更改日期格式

转载 作者:行者123 更新时间:2023-12-01 14:31:58 26 4
gpt4 key购买 nike

我在将日期格式更改为 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();

}

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

有人可以帮我解决这个问题吗,谢谢! :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 GMT 以来的毫秒数

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

您需要使用DateFormatDate实际格式化为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 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,然后您尝试从中创建一个列表...也许我错过了一些东西...

关于java - 更改日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16805762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com