gpt4 book ai didi

java - 在Java中转换日期格式的问题

转载 作者:行者123 更新时间:2023-12-03 21:04:19 25 4
gpt4 key购买 nike

我有一个 MMM/dd/yyyy 形式的字符串,即。 2010 年 5 月 21 日。现在我想将它转换为 yyyyMMdd,即。 20100521.

我的代码是:

public static void main(String[] args) {        
ArrayList<String> dates = new ArrayList<String>();
dates.add("Jan/13/2011");
dates.add("Feb/03/2001");
dates.add("Mar/19/2012");
dates.add("Apr/20/2011");
dates.add("May/21/2010");
dates.add("Jun/23/2008");
dates.add("Jul/12/2009");
dates.add("Aug/14/2010");
dates.add("Sep/01/2011");
dates.add("Oct/07/2010");
dates.add("Nov/05/2011");
dates.add("Dec/30/2011");

for(String s : dates) {
System.out.println(transformPrevDate(s));
}
}

以及转换的方法:

public String transformPrevDate(String datoe) {
String[] splitter = datoe.split("/");
String m = splitter[0].toUpperCase();
String d = splitter[1];
String y = splitter[2];

DateFormat formatter = new SimpleDateFormat("MMM");
DateFormat formatter2 = new SimpleDateFormat("MM");

try {
Date date = formatter.parse(m);
m = formatter2.format(date);
} catch (ParseException e) {
e.printStackTrace();
}

String date = y + m + d;

return date;
}

问题是我在 5 月和 10 月收到无法解析的日期异常。我来自丹麦,如果我将其更改为丹麦语“Maj”和“Okt”,它会成功。那么我在这里做错了什么?

最佳答案

你的 transformDate 方法可以像这样写得更简单:

DateFormat input = new SimpleDateFormat("MMM/dd/yyyy", Locale.ENGLISH);
DateFormat output = new SimpleDateFormat("yyyyMMdd");
public String transformPrevDate(String datoe) throws ParseException {
return output.format(input.parse(datoe));
}

您不需要自己进行解析。

关于java - 在Java中转换日期格式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5326742/

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