gpt4 book ai didi

java - Java 中数据格式不一致的 ParseExeption

转载 作者:搜寻专家 更新时间:2023-10-31 19:48:33 24 4
gpt4 key购买 nike

我写了一个简单的 Util 方法来将 Java 中的 String 转换为 util.Date。我无法弄清楚为什么该方法对第一个输入有效,而对第二个输入失败,因为输入是相同的:

代码:

package util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class StringToDate {

public Date getDateFromString(String strDate, String dateFormat) {

DateFormat df = new SimpleDateFormat(dateFormat);
Date date = null;

try {

date = df.parse(strDate);

} catch (ParseException e) {
e.printStackTrace();
}

System.out.println(date);

return date;
}

public static void main(String[] args) {

StringToDate s2d = new StringToDate();

s2d.getDateFromString("12-18-11, 10:36 AM","MM-dd-yy, hh:mm a");
s2d.getDateFromString("02-04-12, 01:17 PM","MM-dd-yy, hh:mm a");
}
}

输出:

Sun Dec 18 10:36:00 CET 2011
null
java.text.ParseException: Unparseable date: "02-04-12, 01:17 PM"
at java.text.DateFormat.parse(DateFormat.java:337)
at util.StringToDate.getDateFromString(StringToDate.java:17)
at util.StringToDate.main(StringToDate.java:33)

从逻辑上讲,第一个输出应该是 Sat Feb 04 13:17:00 CET 2012。为什么会抛出 ParseException

编辑:以下两行工作正常:

s2d.getDateFromString("02-04-12", "MM-dd-yy");
s2d.getDateFromString("01:17 PM", "hh:mm a");

输出:

Sat Feb 04 00:00:00 CET 2012
Thu Jan 01 13:17:00 CET 1970

但是当我尝试同时解析日期和时间时出现异常。

最佳答案

您的日期字符串或格式掩码中是否有不间断空格或其他一些 Unicode 空格字符?

如果我将第二个日期字符串中的一个空格替换为不间断空格,例如 Unicode character 160,我就能够重现您的错误。 .

关于java - Java 中数据格式不一致的 ParseExeption,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965238/

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