gpt4 book ai didi

java - 通过验证解析日期

转载 作者:行者123 更新时间:2023-12-01 12:15:13 27 4
gpt4 key购买 nike

我目前正在尝试解析日期(和时间),将它们转换为纪元的毫秒数。

为此,我使用 SimpleDateFormat 来解析如下代码:

public static long parseDate(String date) {
// Parse
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
Date parsedDate = format.parse(date);

// Get milliseconds
Calendar cal = new GregorianCalendar();
cal.setTime(parsedDate);
return cal.getTimeInMillis();
}

我发现 SimpleDateFormat 确实允许解析 1970-00-00,它被解析为 1969-11-30。仔细想想,也完全有道理。当解析器只是对所有内容进行“求和”时,1969 年实际上会被理解为“1969-11-30”,并且 0 个月时,不会发生“年份溢出”。不幸的是,我不会更改该日期无效的任何内容(至少就我所理解的日期而言)。

有没有办法通过不使用第三方库或 java 8(目标是 Android)来添加验证,或者必须坚持使用正则表达式和手动验证?

提前谢谢您!

最佳答案

呃,我很抱歉发布这个问题......

答案是禁用宽松标志:

format.setLenient(false);

我不会删除这个问题,这样如果有人偶然发现这个问题,就不需要花几个小时弄清楚如何改变这个问题......希望它有帮助!

这也让我想到了一个问题:为什么默认情况下启用此标志?

关于java - 通过验证解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27064878/

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