Java导入Excel时日期格式转换问题

今天遇到了一个特别普遍但是相对于来说之前没见过的问题,那就是在使用导入Excel 时日期的问题,今天在这里讲一下解决方案,文章末尾也特别感谢一篇其他的参考文章
首先上问题
我在Excel里面存放的日期是:2019/08/21 然后在后台读取的时候为43188 (大概是这样的的,例子,别纠结),然后实体类里面的日期是Date类型,也就是说将获取的日期转换成时间类型,即数据库存入的时候就是2019-08-21:00:00:00
我在测试保存 数据的时候发现了日期的存入方式:Sun Jul 21 00:00:00 CST 2019 类似这样的,然后数据库里面显示的就是2019-08-21:00:00:00 类似这样的
问题来了 :就是把
43188 --》Sun Jul 21 00:00:00 CST 2019 这样类似的转换
到底怎么转换 看一下代码

Cell cell_6=row.getCell(6);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//ExcelUtil.getValue(cell_6))这里获取的值就是上所述的43188 
			if(!StringUtils.isEmpty(ExcelUtil.getValue(cell_6))){
				int days1= Integer.parseInt(ExcelUtil.getValue(cell_6));
				//这里通过工具类转换成 Sun Jul 21 00:00:00 CST 2019 这样的
				Date date1 =StdController.getDate(days1);
				std.setA205(sdf.parse(sdf.format(date1)));//实施日期
			}else{
				std.setA205(null);
			}
			
//工具类如下
public static Date getDate(int days) {
			Calendar c = Calendar.getInstance();
			c.set(1900, 0, 1);
			c.add(Calendar.DATE, days - 2);
			return c.getTime();
		}
		这个问题总算得到解决,感谢某篇博客,附上链接地址:
		https://blog.csdn.net/qq_33327680/article/details/82796023
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当使用Java读取Excel中的日期数据,需要将读取到的数据解析为Date类型的对象,以便进行后续的数据处理。以下是一些可能用到的技巧: 1. 读取Excel日期数据的方式取决于所使用的Excel库。在使用Apache POI等Java Excel,可以使用Cell.getDateCellValue()方法获取日期数据。 2. 如果Excel中的日期数据使用了特定的日期格式,需要在代码中指定相应的日期格式,以便正确解析日期数据。例如,假设Excel中的日期数据格式为"yyyy-MM-dd",则可以使用以下代码创建SimpleDateFormat对象并解析日期数据: ``` SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = dateFormat.parse(cell.getStringCellValue()); ``` 3. 如果Excel中的日期数据没有使用特定的日期格式,而是以字符串的形式存储日期数据,需要根据实际情况使用正则表达式等方式解析日期字符串,并将其转换为Date类型的对象。例如,假设Excel中的日期数据以"yyyyMMdd"格式存储,则可以使用以下代码解析日期字符串: ``` String dateString = cell.getStringCellValue(); Pattern pattern = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})"); Matcher matcher = pattern.matcher(dateString); if (matcher.matches()) { int year = Integer.parseInt(matcher.group(1)); int month = Integer.parseInt(matcher.group(2)); int day = Integer.parseInt(matcher.group(3)); Calendar calendar = Calendar.getInstance(); calendar.set(year, month - 1, day); Date date = calendar.getTime(); } ``` 以上是基本的解析Excel日期数据的方法,具体的实现方式还需要根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值