parse(dateString)
类似Date构造函数,但容错性稍高逻辑如下:
- 如果传入数字,且小于 9000000000 (这个数比32位整数最大值还大)则认为是unix时间戳
- 如果传入数字,且大于 9000000000 则认为是java时间戳
- 如果传入UTC时间(特点是以字符串 GMT 结尾)则直接用Date解析
- 如果传入ISO时间(____ T ____ Z)则直接用Date解析
- 如果传入日期和时间(xxxx-xx-xx xx:xx:xx)分别处理时间和日期
- 如果传入时间(xx:xx:xx)日期设为今天
- 如果传入日期(xxxx-xx-xx)时间设为 00:00:00
- xx:YYYY-MM-xx
- xx-xx:YYYY-xx-xx
- xx-xx-xx:20xx-xx-xx
- 其他:直接传给Date
- xx:xx:00:00
- xx:xx:xx:xx:00
- 其他:直接传给Date
如果仍然无法解析出正确的日期,返回和Date()传入一个非法日期效果一样。