java - 在 Java 中将人类可读的时间解析为毫秒
问题描述
我正在尝试将 4hours 或 1day 或 2months 之类的字符串转换为毫秒。但是我如何有效地做到这一点而不必检查 string.contains("h") 等....?
Node 有ms,Java 会不会有类似的东西?
根据一些回复进行编辑:是的,实际数字可能会发生变化,我以 4 小时为例,但可以是 1、2、3、5 等。日期和月份相同。是的,它们直接相邻。没有空间。示例字符串:remind 1h Go to school 输出应为:3 600 000(毫秒)
解决方案
好吧,你可以把它分解成更小的部分。
- 在字符串中查找此类事件;
- 取数字部分和单位部分并将它们的值相乘以获得毫秒。
要查找出现的情况,您可以使用正则表达式。像这样的正则表达式(-?\d+)(h|days|min|sec)
会匹配这样的字符串。使用Pattern
andMatcher
会有所帮助。
要将数字转换为毫秒,需要将单位映射到与该单位的毫秒数匹配的值。例如,days
将映射到 86400000。
推荐阅读
- python - Python/Matplotlib:如何根据特定的(x,y)位置显示图像?
- javascript - 如何从 JavaScript 中的字符串中提取特定数据?
- node.js - 将节点应用程序添加到 aws
- java - 如何在方法调用中传递数据和使用用户输入
- php - php exif_read_data() 不在 utf-8 中
- html - 跨度中的文本未显示在应显示的位置
- mysql - 如何获取订单计数 - SQL
- arrays - Ruby - 给出了一个整数数组。我必须找到具有最大乘积的相邻元素对
- android - 从主要活动刷新选项卡活动中的列表视图
- android - Flutter 使用 ProGuard 和 Firebase Auth 构建崩溃