java怎么从不规则的字符串中截取出日期
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容介绍了"java怎么从不规则的字符串中截取出日期"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
西安学网络技术比较好的职高
金蝶软件开发难吗
海康威视监控改服务器
or数据库体系结构图
软件开发费用的入账
服务器的FA
服务器主机无法连接无线网络
绿河马服务器
徐汇区通信网络技术结构设计
数据库系统概论期中考试题库
圣安地列斯全服务器下载
福州pc软件开发
软件开发计算机培训学校哪家好
英语网络安全的句子
数据库学好之后工资
怎么更改软件开发者
阿里云服务器如何集中管理
虚拟服务器安全吗
软件开发中的加密
网络安全案件最新解释
士兵网络安全对照检查
七日杀搜索服务器
怎么修改邮件服务器密码
数据库的赋值
智能汽车服务器装在国内
网络安全技术和管理结合
苏州网络安全知识大赛
服务器G220-A3
利刃之拳服务器
服务器安全策略原则