Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.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_Parsing_Date - Fatal编程技术网

Java 通过解析输入将日期添加到现在

Java 通过解析输入将日期添加到现在,java,parsing,date,Java,Parsing,Date,我很难在将来解析日期,我希望能得到一些帮助 事情是这样的,我想在当前日期中添加一个经过解析的日期(以便将来使用)。问题是我可以有多种日期格式,如: dd 年月日 年月日 因此,如果用户设置类似于5,返回的日期将是(在我们的时间点中)2011-11-05。 如果他设置了02-14,它将是2012-02-14 但是假设我们是11月4日的11-03,并且用户设置了11-03,它将是2012-11-03,而不是2011-11-03,因为它已经过去了 我试着玩日历、日期和SimpleFormat,但我

我很难在将来解析日期,我希望能得到一些帮助

事情是这样的,我想在当前日期中添加一个经过解析的日期(以便将来使用)。问题是我可以有多种日期格式,如:

  • dd
  • 年月日
  • 年月日
因此,如果用户设置类似于
5
,返回的日期将是(在我们的时间点中)
2011-11-05
。 如果他设置了
02-14
,它将是
2012-02-14

但是假设我们是11月4日的
11-03
,并且用户设置了
11-03
,它将是
2012-11-03
,而不是
2011-11-03
,因为它已经过去了

我试着玩日历、日期和SimpleFormat,但我无法让它工作

我的解析器(使用SimpleDataFormat)正在工作

你能帮我把这个归档吗?我不是要一个完整的代码,只是一些能让我走上正轨的东西


谢谢!:)

由于您有固定的可接受输入日期格式列表,请将
dateFormat
的宽松字段设置为
false
,并检查其中一个字段是否满足您的工作要求,或者是否引发了异常,转到下一个模式

dateFormat  = new SimpleDateFormat(PATTERN_ONE);
dateFOrmat.setLenient(false);
dateFormat.parse(INPUT_STRING);
// if an exception is caughtm try with next pattern

由于您有固定的可接受的输入日期格式列表,请将
dateFormat
的宽松字段设置为
false
,并检查其中一个字段是否满足您的工作要求,或者是否引发了异常,转到下一个模式

dateFormat  = new SimpleDateFormat(PATTERN_ONE);
dateFOrmat.setLenient(false);
dateFormat.parse(INPUT_STRING);
// if an exception is caughtm try with next pattern

我对jodatime-有很好的经验。签出其中的日期格式化程序


它有一个非常广泛的API,可以让你做一些事情,比如添加和减去日期-考虑到时区和夏令时等。

我对jodatime有很好的经验-。签出其中的日期格式化程序


它有一个非常广泛的API,允许您进行添加和减去日期等操作,同时考虑时区和夏令时等。

您在描述中说Lenient:true,但在代码中设置为false。我应该相信哪一个您的提示确实帮助了我解决了另一个问题:)您在描述中说“宽容”:true,但在代码中设置为false。我应该相信哪一个您的提示确实帮助了我解决了另一个问题:)我尝试使用DateFormatters,我可以使用它们匹配字符串中的日期,但如何使其位于当前日期+给定的日期?(如果只给出了一天,则将月份和年份设置为当前)?我不认为有任何内置功能。但是您可以这样做:foo=newdatetime();新的日期时间(foo.getYear、foo.getMonth、userInputDay、0、0);使用Joda并添加时间,而不仅仅是使用格式创建时间,这是一种方法。我尝试使用DateFormatters,我可以使用它们匹配字符串中的日期,但我如何使其位于当前日期+给定的日期?(如果只给出了一天,则将月份和年份设置为当前)?我不认为有任何内置功能。但是您可以这样做:foo=newdatetime();新的日期时间(foo.getYear、foo.getMonth、userInputDay、0、0);使用Joda并添加时间,而不仅仅是使用格式创建时间,这是一种方法。