现在有一个表示时间的字符串“2019/12/1 22:13:55”,现在我要对其计算1小时后的时间是多少?
思路:
1、解析该字符串,获得其pattern
2、解析该字符串获得时间类的实例
3、进行加法计算
4、(使用前面的pattern)将结果format,并得到最终结果
在使用JDK1.6的时候,我曾经写过类似的代码(没发过),基本思路是:
1、预先定义一些pattern以及其的正则表达式,字符串能够匹配正则,则找到其pattern
2、用SimpleDateFormat解析得到Date
3、将Date转换成Calendar调用add进行计算
4、Calendar实例转换成Date,再format得到字符串
现在用JDK1.8了,而1.8有了新的时间类LocalDateTime,是否也可以用LocalDateTime进行字符串时间的加法计算?
so重新梳理了一下思路:
1、匹配pattern原先的太狭隘了!按如下原则重写该部分功能:
1.a、时间单位是按从大到小的顺序,即:年、月、日、时、分、秒、毫秒
1.b、间隔符可以是任意不与pattern关键字重复的字符,也可以是多个连续的字符;
1.c、有间隔符时,表示时间的数字无需保证位数足够,如十二点一分三十五秒可以为:12:1:35;而无时间间隔符时表示时间的位数必须足够,上例时间为:120135
2、解析该字符串成为LocalDateTime。注意:如果该字符串表示的时间没有小时或更小的单位,需要特殊