Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java日期转换_Java_Date - Fatal编程技术网

Java日期转换

Java日期转换,java,date,Java,Date,在下面的代码中 输入: 输出: Entered Date is February 3, 2011 Entered Month is 02 问题是,当我输入此日期2012年3月14日,日期格式功能会自动将月份更改为12+2(二月)。如果我把13/15/2011,它将改为3(12+3) 它应该在14上给出一个错误,即“无效月份” 参考以下格式: 您期望月份位于第二位,而input将月份置于第一位 尝试: 参考以下格式: 您期望月份位于第二位,而input将月份置于第一位 尝试: 对于每个Dat

在下面的代码中 输入:

输出:

Entered Date is February 3, 2011
Entered Month is 02
问题是,当我输入此日期
2012年3月14日
,日期格式功能会自动将月份更改为
12+2
(二月)。如果我把
13/15/2011
,它将改为
3(12+3)

它应该在
14
上给出一个错误,即“无效月份”

参考以下格式:

您期望月份位于第二位,而input将月份置于第一位

尝试:

参考以下格式:

您期望月份位于第二位,而input将月份置于第一位

尝试:


对于每个
DateFormat
实例,需要使用false参数调用
setLenient

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
DateFormat f = new SimpleDateFormat("dd");
f.setLenient(false);
DateFormat m = new SimpleDateFormat("MM");
m.setLenient(false);
从文件:

通过宽松的解析,解析器可以使用启发式来解释与该对象格式不完全匹配的输入。通过严格解析,输入必须与此对象的格式匹配


对于每个
DateFormat
实例,需要使用false参数调用
setLenient

DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
DateFormat f = new SimpleDateFormat("dd");
f.setLenient(false);
DateFormat m = new SimpleDateFormat("MM");
m.setLenient(false);
从文件:

通过宽松的解析,解析器可以使用启发式来解释与该对象格式不完全匹配的输入。通过严格解析,输入必须与此对象的格式匹配

您是否尝试过在DateFormat上使用“setLenient(false)”来强制DateFormat对解析的输入严格要求? 我还没有尝试过,但最近偶然发现了这个功能。

您是否尝试过在DateFormat上使用“setLenient(false)”来强制DateFormat对解析的输入严格要求?
我还没有试过,但最近偶然发现了这个功能。

兄弟,你能举个例子吗……我会的greatful@Nizil. 不会的。DateFormat是正确的方法。@RohitJain我同意,
DateFormat
比字符串解析好得多,但是忘记了
setLenien(bool)
,在发布答案之前没有看到其他解决方案;)兄弟,你能举个例子吗我会的greatful@Nizil. 不会的。DateFormat是正确的方法。@RohitJain我同意,
DateFormat
比字符串解析好得多,但是忘记了
setLenien(bool)
,在发布答案之前没有看到其他解决方案;)很棒的Rohit..但是我可以从数组中检查月份吗..我被限制使用数组如果我在月份中输入14,那么它应该显示无效的月份,….您的代码只是捕获exception@JamesBlent. 您可以捕获异常,并显示自己的消息。您可以搜索一些好的异常处理教程。是的,我缓存了异常,该“无效日期”。但是我如何使用数组给出错误。我已经在代码中声明了数组…请help@JamesBlent. 使用数组给出错误是什么意思?你能说得更具体些吗?是的……如果我输入日期为2011年14月14日,我希望这样。它应该给出一个错误,即无效月份……我希望我检查月份(14)的输入值将其转换为int并将其与我声明的数组进行比较..太棒了Rohit..但是我可以从数组中检查月份吗..我被限制使用数组如果我在月份中输入14,那么它将显示无效的月份..。您的代码仅捕获exception@JamesBlent. 您可以捕获异常,并显示自己的消息。您可以搜索一些好的异常处理教程。是的,我缓存了异常,该“无效日期”。但是我如何使用数组给出错误。我已经在代码中声明了数组…请help@JamesBlent. 使用数组给出错误是什么意思?你能说得更具体些吗?是的……如果我输入日期为2011年14月14日,我希望这样。它应该会给出一个错误,即月份无效……我希望我检查月份(14)的输入值,将其转换为int,并将其与我声明的数组进行比较。。
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
df.setLenient(false);
DateFormat f = new SimpleDateFormat("dd");
f.setLenient(false);
DateFormat m = new SimpleDateFormat("MM");
m.setLenient(false);