使用SimpleDateFormat 字符串转日期 如何保证健壮性?

使用SimpleDateFormat时如果所匹配的表达式不对那么就会抛出异常.

比如这样是正确的:

      String date = "2012-2-3";
      SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
      try {
        System.out.println(simple.parse(date));

这样是失败的:

      String date = "2012-2-3";
      SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      try {
        System.out.println(simple.parse(date));

但是有时候传来的是yyyy-MM-dd HH:mm:ss这种时间格式
有时候传来的是yyyy-MM-dd这种时间格式
我并不能事先知道传来的是哪种格式
如何让第二种依然能够解析出来,后续的时分秒会被初始化 00:00:00

噜噜哒
浏览 456回答 6
6回答

梦里花落0921

这个只能预先初始化好,可以做个map,同时还建议考虑并非情况下,SimpleDateFormat没记错的话好像是线程不安全的

喵喔喔

我并不能事先知道传来的是哪种格式 那你必须知道,要么就按照其他人回答的那样猜(当然会猜错)。

慕尼黑5688855

输入类型从String转成时间类型,比如Date

RISEBY

可以参考下JAVA8的对于时间和日期的api处理 . 即可以兼容也能解决线程不安全的问题 .
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java