java怎么从不规则的字符串中截取出日期
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇内容介绍了"java怎么从不规则的字符串中截取出日期"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2024年11月30日java怎么从不规则的字符串中截取出日期
本篇内容介绍了"java怎么从不规则的字符串中截取出日期"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
从不规则的字符串中截取出日期
最近在项目中需要远程调接口,从String字符串中截取出日期,想了好久,最后用java8新特性,解决了,java8,还是比较好用。
代码
获取到的字符串,例如:
焦化化产车间四期出水(测试排口),2019/10/19 10:00:00,pH平均值 超标,值:5.00
炼焦一车间焦炉推焦除尘(测试排口)2019/7/14 14:00:00,二氧化硫折算平均值 超标,值:51.27
…
升级版本的字符串:
某某公司的测试,2018年08月27日03:00,当日NOX小时浓度超标3%以上已达4次。
某某公司测试数据出铁场除尘(钢板),2017年11月18日14:23到2019年11月21日15:13,离线已达90小时"
// 截取时间处理 -- java8 //content是获取的字符串 Listlists = Collections.singletonList(content); String beginDate = lists.stream().map(e -> { int lastIndexOf = e.lastIndexOf(":00"); int indexOf = e.indexOf(")"); String substring = e.substring(indexOf + 1, lastIndexOf + 3); String trim = substring.replace(",", "").trim(); return trim; }).findFirst().orElse(null); /** * 升级版本 * 截取时间处理 -- java8 * content是获取的字符串 */ List lists = Collections.singletonList(content); String beginDate = lists.stream().map(e -> { int lastIndexOf; int indexOf; String trim; lastIndexOf = e.lastIndexOf("到"); if (lastIndexOf == -1) { lastIndexOf = e.lastIndexOf(":00"); if (lastIndexOf == -1) {// 防止不规则的字符串时间报错,至为空 return ""; } indexOf = e.indexOf(","); trim = e.substring(indexOf + 1, lastIndexOf + 3); } else { indexOf = e.indexOf(","); String substring = e.substring(indexOf + 1, lastIndexOf); trim = substring.replace(",", "").trim(); } return trim; }).findFirst().orElse(null); String b = beginDate.replaceAll("[年,月]", "-"); // 至为空相关处理 -- 三目运算符 resultDto是自定义的实体 resultDto.setBeginDate(b.equals("") ? null : b);
注意substring()包左不包右,字符串中的标点为中文,这点需要注意
没有升级的输出结果
将yyyy/MM/dd形式的不规则日期转换成规则形式
例如:
2019/7/2 转换成 2019/07/02
代码如下
public static String toDate(String str) { String pattern = "\\d{4}\\/\\d{1,2}\\/\\d{1,2}"; if (str != null && Pattern.matches(pattern, str)) { String[] date = StringUtils.split(str, "\\/"); Calendar c1 = Calendar.getInstance(); c1.set(Integer.parseInt(date[0]), Integer.parseInt(date[1]) - 1, Integer.parseInt(date[2])); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); return sdf.format(c1.getTime()); } return null;}
\\d{4}\\/\\d{1,2}\\/\\d{1,2}
:在java中\\ 表示一个正则表达式的反斜杠,\\/表示斜杠的转义,\\\\表示一个普通的反斜杠。
"java怎么从不规则的字符串中截取出日期"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
字符
字符串
日期
规则
测试
从不
斜杠
时间
升级
处理
不规则
代码
公司
内容
小时
平均值
形式
更多
版本
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全攻击者叫什么
绝地求生安全区服务器
腾讯云服务器如何使用
dag 数据库 不同路径
2020年云服务器怎么买
无锡创新网网络安全
海康存储服务器非海康硬盘
深圳无线软件开发零售价
效益最好的网络安全
刀片服务器市场份额
文件从客户端传输到FTB服务器
临泉县众合网络技术有限公司
软件开发企业是什么
网络安全大概分为几类
对峙2玩哪个服务器好
互联网技术是科技技术嘛
数据库链表查找
山西红色文化馆软件开发公司
数据库怎么用到电脑上
网络安全密码怎么查询
网络安全防护管理安全
网络安全规章制度和操作流程
导出整个数据库备份
手机软件开发社团
小学网络安全漫画手绘图片
王者荣耀服务器分区
什么是腾讯的后台服务器
数据库应用技术电子书
德阳网络安全安全执法制度
国信互联网科技有限公司花生大厦