SimpleDateFormat :{ ParseException: Unparseable date} 问题原因以及解决方法

这篇具有很好参考价值的文章主要介绍了SimpleDateFormat :{ ParseException: Unparseable date} 问题原因以及解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、报错

转换格式:SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
报错:
	java.text.ParseException: Unparseable date: "2020/1/12"
	    at java.text.DateFormat.parse(DateFormat.java:366)
	    at com.hxjs.website.modules.epanalysis.controller.ScehduledThread.run(ScehduledThread.java:53)
	    at com.hxjs.website.modules.sys.controller.SysLoginController$1.run(SysLoginController.java:106)
	    at java.util.TimerThread.mainLoop(Timer.java:555)
	    at java.util.TimerThread.run(Timer.java:505)

2、分析原因

SimpleDateFormat simpleFormat = new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
我所使用的与实际要转换的不一致,导致报错

3、解决

在转换的时候必须保持 转换字符串和转换类型格式一致

提供一个代码片段(只是简单做了一下判断,只能满足几种日期转换(写的不是很好,有待优化))

/**
	 * 日期类型转换
	 * @param date
	 * @return
	 * @throws ParseException
	 */
	private Date dateCl(String date) throws ParseException {
		SimpleDateFormat simpleDateFormat=null;
		if (date.contains("-") && date.contains(":")){
			if (Objects.equals(stringCount(date,":"),2)){
				simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
				return simpleDateFormat.parse(date);
			}else if (Objects.equals(stringCount(date,":"),1)){
				simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm");
				return simpleDateFormat.parse(date);
			}
		}else if (date.contains("/") && date.contains(":")){
			if (Objects.equals(stringCount(date,":"),2)){
				simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
				return simpleDateFormat.parse(date);
			}else if (Objects.equals(stringCount(date,":"),1)){
				simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd hh:mm");
				return simpleDateFormat.parse(date);
			}
		}else if (date.contains("/") && !date.contains(":")){
			simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd");
			return simpleDateFormat.parse(date);
		}else if (date.contains("-") && !date.contains(":")){
			simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
			return simpleDateFormat.parse(date);
		}
		return null;
	}

	/**
	 * 获取字符串出现的次数
	 * @param data
	 * @param s
	 * @return
	 */
	private int stringCount(String data,String s){
		String str = data;
		String searchChar = s;
		int count = 0;
		int origialLength = str.length();
		str = str.replace(searchChar, "");
		int newLength = str.length();
		count = origialLength - newLength;
		return count;
	}

4、补充

1、使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat是线程不安全的,推荐使用LocalDateTime

参考此篇博客文章来源地址https://www.toymoban.com/news/detail-626738.html

到了这里,关于SimpleDateFormat :{ ParseException: Unparseable date} 问题原因以及解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • API(Date类,SimpleDateFormat类,Calendar类,JDK8时间相关类,包装类,算法小题)

    JDK7时间相关类 JDK8时间相关类 包装类 综合练习 Collection集合 能够使用日期类输出当前日期 能够使用将日期格式化为字符串的方法 能够使用将字符串转换成日期的方法 能够说出8种基本类型对应的包装类名称 能够说出自动装箱、自动拆箱的概念 能够将字符串转换为对应的基

    2024年02月02日
    浏览(40)
  • 【JAVA语言-第12话】API中的工具类 之 Date,DateFormat,SimpleDateFormat,Calendar类的详细解析

    目录 日期和时间 1.1 Date类 1.1.1 概述 1.1.2 常用方法  1.1.3 案例 1.2 DateFormat类  1.2.1 概述 1.2.2 常用方法 1.3 SimpleDateFormat类 1.3.1 概述 1.3.2 构造方法 1.3.3 模式字符  1.3.4 日期转字符串 1.3.5 字符串转日期 1.4 Calendar类 1.4.1 概述 1.4.2 静态方法 1.4.3 常用成员方法 1.4.4 成员方法中参数

    2024年02月02日
    浏览(41)
  • StringBuilder类- StringBuffer类- 正则表达式- Date类 (日期)- SimpleDateFormat类(日期格式化的类)- Calendar类 (日历类)

    目录 stringbuilder类 StringBuffer类 正则表达式 日期 日期格式化的类 Calendar类:(日历类) 是一个抽象类 stringbuilder类 概念:可以改变的字符串 (这里跟string可以区分开,string创建的是不可改变的字符串) 底层:使用的是一个byte类型的数组,默认长度16 (string的底层使用final修

    2024年01月17日
    浏览(46)
  • SimpleDateFormat 线程安全问题修复方案

    在日常的开发过程中,我们不可避免地会使用到 JDK8 之前的 Date 类,在格式化日期或解析日期时就需要用到 SimpleDateFormat 类,但由于该类并不是线程安全的,所以我们常发现对该类的不恰当使用会导致日期解析异常,从而影响线上服务可用率。 以下是对 SimpleDateFormat 类不恰当

    2024年02月12日
    浏览(39)
  • 可能导致balenaEtcher写入出错的原因以及如何解决这些问题

    balenaEtcher是一款流行的免费开源烧录软件,它能够帮助用户将ISO映像文件或者img文件烧录到USB闪存驱动器或SD卡上。尽管balenaEtcher使用简单,但有时候在烧录过程中可能会出现错误。下面是一些可能导致balenaEtcher写入出错的原因以及如何解决这些问题: 1.不正确的映像文件:

    2024年02月05日
    浏览(115)
  • 安卓之导致ANR的原因分析,问题定位以及解决方案

            在Android应用开发中,Application Not Responding(ANR)是一种常见的性能问题,它直接关系到用户体验的质量。当应用在特定时间段内无法及时响应用户的交互或者系统事件时,系统将会抛出ANR错误,提示用户应用已停止响应。为了确保应用的流畅性和用户满意度,理解

    2024年03月13日
    浏览(50)
  • Java中SimpleDateFormat的线程安全性问题

    在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间。但不同的方法获取到的时间格式不尽相同,这时就需要一种格式化工具,把时间显示成我们需要的格式,最常用的方法就是使用SImpleDateFormat类。这是一个看上去功能比较简单的类,但使用不当,也

    2024年01月25日
    浏览(45)
  • 【python报错】TypeError: ‘int‘ object is not callable问题原因以及解决办法

    1.TypeError: ‘int’ object is not callable 报错原因 刚开始学python,在写一段代码的时候python报错:TypeError: ‘int’ object is not callable(int数据类型不能被调用) 出现这个问题的原因是:自己编写的代码中函数变量以及函数名称重复 2.解决办法:修改函数名称或者函数的变量名称,在

    2024年02月13日
    浏览(43)
  • 高并发场景下,6种解决SimpleDateFormat类的线程安全问题方法

    摘要: 解决SimpleDateFormat类在高并发场景下的线程安全问题可以有多种方式,这里,就列举几个常用的方式供参考。 本文分享自华为云社区《【高并发】更正SimpleDateFormat类线程不安全问题分析的错误》,作者: 冰 河 。 解决SimpleDateFormat类在高并发场景下的线程安全问题可以

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包