Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Datetime - Fatal编程技术网

Java 如何生成具有可变粒度的日期范围

Java 如何生成具有可变粒度的日期范围,java,date,datetime,Java,Date,Datetime,我们在生成定义范围内的日期时遇到一些问题。这可能是一项简单的任务,因为您没有用户定义的粒度 例如: 使用粒度定义为“YYYY-MM-DD”的2016-02-01,2016-02-05,2016-02-02,2016-02-05,2016-02-05以及粒度“YYYY-MM”的 但是我们不知道选择哪个粒度,所以我们必须考虑手册中定义的所有日期时间模式。 是否有某种方法可以简单地按日期格式中指定的最小日期单位递增?FE“YYYY-MM-DD”很明显,这是一天 我能想到的唯一解决方案是在日期上加一毫秒

我们在生成定义范围内的日期时遇到一些问题。这可能是一项简单的任务,因为您没有用户定义的粒度

例如:

使用粒度定义为“YYYY-MM-DD”的
2016-02-01
2016-02-05
2016-02-02
2016-02-05
2016-02-05
以及粒度
“YYYY-MM”

但是我们不知道选择哪个粒度,所以我们必须考虑手册中定义的所有日期时间模式。 是否有某种方法可以简单地按日期格式中指定的最小日期单位递增?FE<代码>“YYYY-MM-DD”

很明显,这是一天

我能想到的唯一解决方案是在日期上加一毫秒,将其格式化为粒度,然后检查字符串是否为repr。日期的更改日期。但这是完全不可想象的,因为它的效率低得惊人

提前感谢,


Michal

与其用开始、结束和格式来定义日期范围,不如用开始、结束和增量单位来定义日期范围?谢谢你的回答。我在考虑过,但是如果你想以月为单位递增,恐怕没有用,因为月的天数不同。如果不需要使用“yyy-mm-dd”这样的文本格式来表示粒度,那么肯定有更好的选择。例如,您可以传递一个“递增算法”。@MichalLičko为什么不能传递单位月份作为粒度,并按月递增?@JBNizet这是因为我们没有对所有可能的粒度进行有限枚举。它可以是任何一周、一周中的几天、几年甚至几秒钟或几毫秒。